关于HTTP请求
客户端通过发送HTTP请求向服务器请求对资源的访问。HTTP请求由三部分构成,分别是:请求行,消息报头和请求正文。
请求行以一个方法符号开头,后面跟着请求URI和HTTP协议的版本,以CRLF结尾。格式如下:
Method Request-URI HTTP-Version CRLF
例如:GET /form.html HTTP/1.1 (CRLF)
消息报头我们下面再讨论。
消息报头和请求正文之间是一个空行,这个空行表示消息报头已经结束,接下来是请求正文。请求正文中可以包含提交的数据,比如user=zhangsan&pwd=1234。
关于HTTP响应
在接收和解释请求消息以后,服务器会返回一个HTTP响应消息。与HTTP请求相似,HTTP响应也是由三个部分构成的,分别是状态行、消息报头和响应正文。
状态行由协议版本,数字形式的状态代码以及相应的状态描述构成。各元素之间以空格分开,除了结尾的CRLF字符序列以外,不允许有CR或LF字符。格式如下:
HTTP-Version Status-Code Reason-Phrase CRLF
例如,HTTP/1.1 200 OK (CRLF)
消息报头我们下面一起讲
响应正文和消息报头之间是一个空格。响应正文就是服务器返回的资源的内容。
关于HTTP消息
我们现在再回头来看看HTTP消息。
HTTP消息除了包含上面所说的请求行和状态行之外,还包括各种消息头:普通报头,请求报头,响应报头,实体报头。
普通报头包括以下内容:
Cache-Control Connection Date
Pragma Trailer Transfer-Encoding
Upgrade Via Warning
请求报头包括以下内容:
Accept Accept-Charset Accept-Encoding
Accept-Language Authorization Expect
From Host If_Match
If-Modified-Since If-None-Match If-Range
If-Unmodified-Since Max-Forwards Proxy-Authorization
Range Refer TE
User-Agent
响应报头包括以下内容:
Accept-Ranges Age ETag
Location Proxy-Authenticate Retry-After
Server Vary WWW-Authenticate
实体报头包括:
Allow Content-Encoding Content-Language
Content-Range Content-Location Content-MD5
Content-Length Content-Type Expires
Last-Modified