如何将HTTP协议类为支持的?

摘要:本文从以下几方面介绍HTTP协议 主要特点: http协议的特点: 1.支持客户服务器模式。 2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不
本文从以下几方面介绍HTTP协议 HTTP协议的主要特点 HTTP报文的组成部分 HTTP方法 HTTP状态码 POST和GET的区别 什么是持久连接 什么是管线化 主要特点: http协议的特点: 1.支持客户/服务器模式。 2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。 3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。 4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。 5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。 HTTP报文的组成部分 HTTP有两种类型的报文:请求报文和响应报文。 请求报文的格式如下: 请求报文的第一行是请求行。请求行共有3个字段:方法、URL和版本,以空格分隔。在该行最后,以回车和换行两个字符作为结束。 方法:定义了请求类型。 URL:定义了相关Web页的地址,它和Host首部行一起组成完整的请求URL。 版本:给出HTTP协议的版本。HTTP的最新版本是1.1 在请求行之后,可以有0到多个首部行。每个首部行从客户端向服务器发送附加信息。 首部名称字段定义了附加信息的类型;首部值字段定义了与首部名相关联的值。 一些常用的首部名: 请求报文主体只在某些类型的报文中出现,为可变行数。该部分通常是一些需要发送的备注信息。 响应报文的格式如下: 响应报文中的第一行称为状态行。状态行共有3个字段:版本、状态码和短语,以空格分隔。在该行最后,以回车和换行两个字符作为结束。 版本:定义了HTTP协议的版本。 状态码、状态短语:定义了请求的状态。 在状态行之后,可以有0到多个首部行。每个首部行从服务器向客户端发送附加信息。 响应报文主体包含从服务器向客户端发送的文档。如果响应不是错误报文,则主体将出现在响应报文中。 响应报文中的一些常用的首部名: http方法 GET 请求服务器的文档 HEAD 请求关于文档的信息,但不是这个文档本身 POST 从客户端向服务器发送一些信息 PUT 从服务器向客户端发送文档 TRACE 把到达的请求回送 CONNECT 保留 DELETE 删除Web页 OPTIONs 询问关于可用的选项 HTTP状态码 状态码的几个类别 1xx:指示信息 - 表示强求已接受,继续处理 2xx:成功 - 表示请求已被成功接收 3xx:重定向 - 要完成请求必须进行更进一步的操作 4xx:客户端错误 - 请求有语法错误或请求无法实现 5xx:服务端错误 - 服务端未能实现合法的请求 常见的状态码 提供信息的 100 Continue 请求的开始部分已经收到,客户可以继续它的请求 101 Switching 服务器同意切换协议 成功 200 OK 请求成功 201 Created 新的URL被创建 202 Accepted 请求被接受,但还没有马上起作用 204 No content 主体中没有内容 重定向 301 Moved Permanently 服务器已不再使用所请求的URL 302 Moved temporarily 所请求的URL已暂时地删除了 304 Not modified 文档还没有被修改 客户端差错 400 Bad request 在请求中有语法差错 401 Unauthorized 请求缺少适当的授权 403 Forbidden 服务被拒绝 404 Not found 文档未找到 405 Method not allowed 这个方法不被这个URL所支持 406 Not acceptable 所请求的格式不可接受 服务器差错 500 Internal server error 在服务器端有差错,如崩溃 501 Not implemented 所请求的动作不能完成 503 Service unavailable 服务暂时不可用 POST和GET的区别 持久连接 持久连接只有http1.1才支持。 先简单介绍一下什么是持久连接: HTTP协议采用“请求-应答”模式,当时用普通模式,即非持久连接的模式时,每个请求/应答客户端和服务器都要新建一个连接,完成之后立即断开连接(无连接的协议) 当使用Keep-Alive模式(持久连接)时,Keep-Alive功能使客户端到服务端的连接持久有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。 这里给大家推荐一篇博客,这篇博客详细讲解了持久连接,在本文中就不在详细介绍了。传送门 http管线化 在使用持久连接的情况下,某个连接上的消息的传递类似于 请求1 -> 响应1->请求2 -> 响应2->请求3 -> 响应3 管线化后,连接上的消息变成了这样 请求1 -> 请求2 -> 请求3 -> 响应1-> 响应2-> 响应3 通俗的讲,不用管线化的持久连接就是来一个请求就响应一个; 而管线化则是,把请求打包发过去,一起响应。 管线化特点: