HTTP协议
HTTP协议定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器(客户)。HTTP是万维网上能够可靠地交换文件(文本、声音、视频等各种多媒体文件)的基础。
HTTP是应用层协议,但它在传输层使用面向连接的TCP协议传输文件,保证了数据的可靠传输。
一、HTTP协议的特点
-
面向事务
HTTP不仅传送完成超文本跳转所必需的信息,而且也传送任何从互联网上得到的信息,如文本、超文本、声音或图像等。
-
无连接
虽然HTTP使用了TCP连接,但通信双方在交换HTTP报文之前不需要先建立连接。
-
无状态
同一个客户第二次访问同一个服务器上的页面时,服务器的响应与第一次被访问时的相同,因为服务器并不记得曾经访问过这个客户,也不记得曾经为该客户服务过多少次
二、 客户访问万维网服务器的的过程
每个万维网网点都有一个服务器进程,它不断地监听TCP的端口80(HTTP默认使用80端口),以便发现是否有浏览器(即客户)向它发出连接建立请求。一旦监听到连接建立请求并成功建立TCP连接之后,浏览器就向万维网服务器发出请求(浏览某个页面的请求),服务器收到请求报文后就向浏览器返回所请求的页面作为应答(应答报文)。最后,释放TCP连接。
三、 HTTP的连接方式
浏览器与服务器建立连接的方式有两种:短连接(close)和长连接(keep-alive)。
短链接:客户与服务器每进行一次HTTP操作,就建立一次连接,任务结束后释放连接。
长连接:所谓长连接就是服务器在向客户发送响应后仍然在一段时间内保持这条连接,使同一个客户和服务器可以继续在这条连接上传送后续的HTTP请求报文和应答报文。
长连接和短连接的区别:
1、长连接可以省去较多的TCP建立和关闭的操作,减少浪费,节约时间。对于频繁请求资源的客户端适合使用长连接。HTTP/1.1版本默认使用长连接。
2、短连接对于服务器来说管理较为简单,存在的连接都是有用的连接,不需要额外的控制手段。但如果客户请求频繁,将在TCP的建立和关闭操作上浪费较多时间和带宽。
长连接的两种工作方式:
1、非流水线方式
非流水线方式的特点是客户在收到前一个响应后才能发出下一个请求。但服务器在发送完一个对象后,其TCP 连接就处于空闲状态,浪费了服务器资源。
2、流水线方式
流水线的特点是客户收到HTTP的响应报文之前就能够接着发送新的请求报文,于是服务器就可连续发回响应报文。流水线方式使TCP连接中的空闲时间减少,提高了下载文档的效率。
四、 HTTP的请求报头结构
HTTP请求方法及其意义:
五、 HTTP的应答报头结构
HTTP状态码及其含义:
参考资料
计算机网络 谢希仁 第7版