Http Message
1.1 HTTP Message
中文名称:HTTP报文
1.1.1 作用
HTTP messages arethe blocks of data sent between HTTP applications. 或者HTTP message is theblock of data sent between HTTP applications.
1.1.2 结构
HTTP message是格式化的字符串(包含图片怎么办呢?也是字符串?我理解的包含图片的HTTP message只是特殊的有规律组成一幅图片的字符串),Each message contains either arequest from a client or a response from a server. 每条HTTPmessage包括3部分:起始行、首部、主体(实体)
The Body can contain text orbinary data orcan be empty.(也就是说主体部分可以传递文本文件html、txt、xml,也可以传递二进制文件如图片、音视频等)。
1.1.3 分类
HTTP messages可以分为两大类,request messages and response messages.(请求报文和响应报文);
1.1.3.1Request message
The format for a request message:
<method> <request-URL> <version>
<headers>
<entity-body>
1.1.3.2Response message
格式 (注意和请求报文只有起始行部分有区别):
<version> <status> <reason-phrase>
<headers>
<entity-body>
部分介绍:
首部:可以有多个,每个首部包含一个“名称”:“空格(可以没有)”“值”CRLF
首部和实体以CRLF分割,也就是说首部的最后一条和实体的开始有两个CRLF
1.1.4 StartLine 起始行
1.1.4.1Request line
request message的StartLine(HTTP Messages中请求报文的起始行)
包括:方法、URL、客户端使用的HTTP版本;
如:GET /test/hi-there.txt HTTP/1.1
All of these fields are separated by whitespace!
1.1.4.2Response line
响应报文的起始行
包括:响应报文使用的HTTP版本、数字状态码、描述状态的文本
如:HTTP/1.0 200 OK
All of these fields are separated by whitespace!
1.1.5 Headers首部
1.1.5.1分类
Headers fall into five main classes:
通用首部:
请求首部:
响应首部:
实体首部:
扩展首部:
1.1.6 Status codes状态码
Client error理解为客户端请求错误;
常见错误:
返回300-399之间的状态码,服务器同时会在首部中回馈Location字段来告诉浏览器你“感兴趣“的那个资源被重定向了到Location的位置上了;