_Ritchie

HTTP协议

概述

    HTTP协议是HyperText Transfer Protocol的缩写,即超文本传输协议。是由w3c(万维网联盟)制定的一种应用层协议,用来定义浏览器与web服务器之间如何通信以及通信的数据格式。

通信过程

HTTP协议的通信过程可以分为以下四个步骤:
 1. 浏览器根据IP地址和端口号与服务器建立连接
 2. 向Web服务器发送请求数据包
 3. Web服务器接收请求数据包后,发送相应的响应数据包
 4. 浏览器接收响应数据后关闭连接
    在这个过程中,一次请求对应一次连接,当浏览器再次发请求给服务器时,Web服务器并不知道这就是上次发请求的客户端,这也是HTTP协议的一个特点-无状态协议。这种需要时建立连接,使用结束后立即断开连接的方式使得Web服务器可以利用有限的连接为尽可能多的客户提供服务。

协议格式

请求数据包

请求数据包包含三个部分:
 1. 请求行,包括请求方式,请求资源路径,以及协议版本
 2. 消息头是由若干的键值对组成,主要用于传递给Web服务器一些信息。如,浏览器版本、接受资源的类型等
 3. 在消息头的下面会跟着一个空白行,这样就可以区分出消息头与实体内容这两个部分。而在请求数据包中,大部分情况实体内容为空,只有当请求方式为POST时,实体内容才有要提交的表单数据

响应数据包

响应数据包也包含三个部分:
 1. 状态行,包括协议类型、版本、状态码、状态描述
 2. 消息头(若干),也是多组键值对组成的信息说明。如返回的Content-Type消息头可以告诉浏览器返回的结果数据类型和字符集
 3. 实体内容,位于消息头下面的一个空白行之后。空白行意在通知浏览器消息头的结束以及结果内容的开始,浏览器就从这里开始数据的逐行解析

posted on 2015-06-27 16:48  _Ritchie  阅读(179)  评论(0编辑  收藏  举报

导航