HTTP协议总结

来源:互联网 发布:手机淘宝网电脑版登录 编辑:程序博客网 时间:2024/06/16 14:05

       HTTP作为面向应用层协议,是网络文本、声音、图像等传输的重要基础。

一、网络通信模型

       1、网络通信七层模型


       每层直接为其上层提供服务,物理层-数据链路层-网络层主要用于创造两个网络设备间的物理连接,传输层-会话层-表示层-应用层主要负责交互性操作

        2、网络TCP/IP模型

     

二、HTTP的工作流程——请求-响应式

       一次HTTP操作称为一个事务,主要有以下4步:

1、客户机与服务器建立连接

2、客户机发送请求,请求(request)格式为url、协议版本号、修饰符等信息

3、服务器接收请求,返回响应信息,响应(response)格式为协议版本号、访问状态码等信息

4、客户端接收服务器返回信息,显示页面后,与服务器断开连接。

       如果以上任一一步出错,那么产生的错误信息返回客户端显示即可。

 三、HTTP参数

1、URL

       统一资源定衣服,类似于JNDI,通过一个地址访问某个具体资源。例如 https://www.max.com/index.jsp

       https:协议

       www.max.com:存有该资源的主机IP地址

       index.jsp:主机资源具体地址,如文件名、目录信息

2、request头信息

      

       URL:资源地址

       HTTP请求方式

       请求状态

       可接受的编码格式、文件类型

       Cookie信息

3、常见的http请求

       GET:请求数据

       POST:更新数据

       HEAD:请求中由request-uri表示的响应头信息

       PUT:更新数据

       DELETE:删除url资源

4、请求响应状态

       200  ok客户端请求成功

       400  bad request 客户端请求存在语法错误,不能被服务器理解

       401  请求未经授权

       403  服务器收到请求,但拒绝提供服务

       404  请求资源不存在,例如请求的url错误

       500  服务器发生不可预知错误

       503  服务器当前不能处理客户端请求信息,一段时间后可能恢复正常

四、TCP/IP三次握手流程

       http协议是基于TCP/IP协议之上的协议,而建立TCP连接需要进行3次握手之后, client和server才会建立连接。在建立TCP/IP握手过程中,使用SYN作为握手信号,ACK确认符表示发来的消息已接收确认无误。

 

1、  客户端向服务器发送SYN消息

2、  服务器使用SYN+ACK1应答返回,表示接收到了SYN消息

3、  客户端向服务器发送ACK2消息,表示我也就收到了你给我返回的SYN+ACK1消息。

       这样三个消息传递成功后,则建立起了一个TCP/IP连接。

五、HTTP协议特点

1、客户端/服务器模式

2、响应快速,只需传输请求方式和url路径

3、允许传输任意类型的数据对象,有content-type标记

4、无连接:每次连接只处理一个请求,服务器处理完客户端请求后,即断开连接,节省传输时间

5、无状态:对事务处理没有记忆能力,后续处理需要前面的request信息,则必须重传

 HTTP1.0 VS 1.1

1、1.0每次请求都需要建立一个新的TCP连接,即连接不能复用

2、1.1新的请求可以在上次请求的TCP连接上进行发送,连接可复用,从而减少TCP三次握手的开销,提高效率

3、1.1在request的头信息里增加了Host域和options 、put、delete、trace、connect这些request方法

HTTP2.0特点——多路复用(Multiplexing)

       在 HTTP/1.1 协议中 「浏览器客户端在同一时间,针对同一域名下的请求有一定数量限制。超过限制数目的请求会被阻塞」,而2.0提出的多路复用允许同时通过单一的 HTTP/2 连接发起多重的请求-响应消息。


       因此 HTTP/2 可以很容易的去实现多流并行而不用依赖建立多个 TCP 连接,HTTP/2 把 HTTP 协议通信的基本单位缩小为一个一个的帧,这些帧对应着逻辑流中的消息。并行地在同一个 TCP 连接上双向交换消息。

       单连接多资源的方式,减少服务端的链接压力,内存占用更少,连接吞吐量更大。由于 TCP 连接的减少而使网络拥塞状况得以改善,同时慢启动时间的减少,使拥塞和丢包恢复速度更快。

        详见http://www.360doc.com/content/16/0120/09/30136251_529253725.shtml

0 0
原创粉丝点击