HTTP 协议学习心得体会 HTTP (HyperText Transfer Protocol) ==================================== 是TCP/IP 协议集中的一个应用层协议,用于定义浏览器和Web 服务器之间交换数据的过程以及数据本身的格式。现在被广泛使用的是HTTP1.1,相对于1.0,1.1 的最大特点是支持持续连接。 基于HTTP1.0 协议的客户机与服务器的信息交换过程包括四个步骤:建立连接;发送请求信息;回送响应信息;关闭连接。 通信过程总是通过浏览器发送请求来启动的,Web 服务器则是被动地对这些请求作出响应。HTTP协议是无状态的。 HTTP1.1 与 HTTP1.0 的比较 ------------------------------------- HTTP1.0 规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开 TCP 连接。服务器不跟踪每个客户机,也不记录过去的请求。为了克服HTTP1.0 的这个缺陷,HTTP1.1 支持持久连接,在一个TCP 连接上可以传送多个HTTP 请求和响应,减少了建立和关闭连接的消耗和延迟。HTTP1.1 还允许客户端不用等待上一次请求结果返回,就可以发送下一次请求,但服务器端必须按照接受到客户端请求的先后顺序依次回送响应结果,以保证客户端能够区分出每次请求的响应内容。 HTTP1.1 还增加了 host 请求头字段,用于明确表示访问服务器上的哪个web 站点,可以在一个IP地址和端口号上使用不同的主机名来创建多个虚拟 web 站点。HTTP1.1 还有 keep-alive 请求头来支持持续连接。 HTTP 消息的格式 ----------------------- 一个完整的请求消息包括:一个请求行,若干消息头,以及实体内容,其中消息头和实体内容都是可选的。消息头和实体内容之间要用空行隔开。浏览器使用GET 方式的请求消息可以放松不含实体内容的请求消息。只有使用POST, PUT, DELETE 方式的请求消息中才可以包含实体内容。 Hypertext Transfer Protocol GET / HTTP/1.1\r\n Request Method: GET Request URI: / Request Version: HTTP/1.1 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-ms-application, application/vnd.ms-xpsdocument, application/xaml+xml, application/x-ms-xbap, application/x-shockwave-flash, application/vnd.ms-excel, application/vn Accept-Language: zh-cn\r\n UA-CPU: x86\r\n Accept-Encoding: gzip, deflate\r\...