- HTTP规定在HTTP客户端与服务器端之间的每次交互,都由一个ASCII码串构成的请求和一个"类MIME"的响应组成。(每个MIME类型由两部分组成,前面是数据的大类别,例如声音audio、图象image等,后面定义具体的种类.在HTTP中,MIME类型被定义在Content-Type header中。)
- 从层次的角度看,HTTP是面向事务的应用层协议。所谓事务,就是指一系列的信息交换,而这一系列的信息交换是一个不可分割的整体,即要么所有信息交换都完成,要么一次交换都不进行。
- HTTP协议本身是无连接的,虽然HTTP使用了TCP连接,但通信的双方在交换HTTP报文之前不需要建立HTTP连接。
- HTTP协议是无状态的,即同一个客户第二次访问同一个服务器上的页面时,服务器的响应与第一次 被访问时的相同。
- 万维网客户端把HTTP请求报文作为TCP连接三次握手的第三个报文的数据发送给服务器。服务器收到HTTP请求报文后,就把所请求的文档作为响应报文返回给客户。
- HTTP1.0的主要缺点:每请求一个文档就要有2倍RTT的开销(Round-Trip Time 往返时延)。HTTP1.1则使用持续连接。所谓持续连接就是服务器在发送响应后仍然在一段时间内保持这条连接,使同一个客户端和该服务器可以继续在这条连接传送后续的HTTP请求报文和响应报文,这并不局限于传送同一个页面上链接上的文档,而是只要这些文档都在同一个服务器上就行。
- HTTP1.1协议的持续连接有2种方式:非流水线方式和流水线方式。非流水线方式的特点是:客户端在收到前一个响应后才能发出下一个请求;流水线方式的特点是客户在收到HTTP的响应报文之前就能接着发送新的请求报文。
- HTTP请求报文和响应报文都由三个部分组成:开始行、首部行、实体主题。开始行用于区别报文是响应报文还是请求报文。在请求报文中,开始行叫做请求行;在响应报文中,开始行叫状态行。
- 请求报文请求行只有三个内容:方法、请求资源的URL、HTTP的版本。响应报文的状态行也包括3项内容:HTTP的版本、状态码、解释状态码的简单短语。
- 状态码都是三位数字的,分为5大类共33种:
1xx表示通知信息的,如请求收到了或正在进行处理。
2xx表示成功,如接受或只带了。
3xx表示重定向,如果完成请求,如果完成请求,还必须采取进一步的行动。
4xx表示客户端错误,如请求中有错误的语法或不能完成。
5xx表示服务端错误,如服务器失效无法完成请求。 - 在浏览器地址键入URL,按下回车之后发生的几个事件:
1.浏览器向DNS服务器请求解析该URL中的域名所对应的IP地址。
2.解析出IP地址后,根据该IP地址和默认端口80,和服务器建立TCP连接。
3.浏览器发出读取文件的HTTP请求,该请求报文作为TCP三次握手的第三个报文的数据发送给浏览器。
4.服务器给出响应,把对应的html文本发送给浏览器。
5.释放TCP连接。
6.浏览器将该文本显示出来。
浅析HTTP协议
最新推荐文章于 2024-03-01 15:21:16 发布