HTTP报文
1.HTTP请求报文
1.1 HTTP请求报文格式
? HTTP请求报文包括请求行、请求头和请求体三部分,每行由一个回车和换行符结束,最后一行再附加一个回车换行符,如下图:
1.2 HTTP请求行
? 请求行由请求方法(GET/POST),URL,协议/版本构成
1.3 HTTP请求头
? HTTP请求头中有很多属性,用来标识请求报文的一些信息,比如可接受的响应内容类型、请求体长度、可接受的响应语言等等,以下列出了一些常用的请求头信息:
协议头 | 说明 | 示例 |
---|
Accept | 可接受的响应内容类型 | Accept:text/plain | Accept-Charset | 可接受的字符集 | Accept-Chaset:utf-8 | Accept-Language | 可接受的相应内容语言列表 | Accept-Language:en-US | Cache-Control | 用来指定当前的请求/回复中是否使用缓存机制 | Cache-Control:no-cache | Connection | 客户端(浏览器)使用的连接类型 | Connection:keep-alive | Cookie | 由之前服务器通过Set-Cookie设置的一个HTTP协议Cookie | Cookie:token:123 | Content-Length | 以8进制表示请求体的长度 | Content-Length:348 | Content-Type | 请求体的MIME类型(用于POST和GET请求中) | Content-Type:application/x-www-form-urlencoded | Host | 表示服务器的域名以及服务器所监听的端口号(若端口号为80,则可以省略) | Host:www.baidu.com Host:www.sxbank.com:8888 | Range | 表示请求某个实体的一部分,字节偏移以0开始(断点续传) | Range:bytes=500-999 |
1.4 HTTP请求体
? 请求体中存放的是用户要提交的数据,一般使用POST请求进行提交数据,会将数据放在请求体中,以json格式发送。
2.HTTP响应报文
2.1 HTTP响应报文格式
? HTTP响应报文包含三部分,分别是响应行、响应头和响应体,如下图:
2.2 HTTP响应头
? HTTP响应头由协议/版本、状态码和状态描述信息组成。
2.2.1 状态码
- 1xx:代表请求正在处理中
- 2xx:代表请求处理成功
- 3xx:代表重定向
- 4xx:代表客户端发生错误
- 5xx:代表服务端发生错误
状态码 | 含义 |
---|
1xx | 代表请求正在处理中 | 2xx | 代表请求处理成功 | 200 | 从客户端发送的请求在服务器被正常处理了 | 204 No Content | 服务器接收的请求已成功处理,但返回的响应报文中不含有响应体 | 206 | 表示客户端进行了范围请求,相应报文中包含由Content-Range指定范围的实体内容 | 3xx | 代表重定向 | 301 | 永久重定向,表示请求的资源已被分配了新的URI,以后应使用现在所指的URI | 302 | 临时重定向,表示请求的资源已被分配了新的URI,希望用户本次使用新的URI | 303 | 由于请求的资源中存在着另一个URI,应使用GET方法重定向获取请求的资源 | 304 | 和重定向没关系,表示客户端发送附带条件的请求时,服务器允许访问资源,但因发生请求为满足情况后,直接返回304 | 4xx | 客户端出错 | 400 | 表示请求报文中出现语法错误 | 401 | 表示请求需要通过HTTP认证的认证信息,若之前已经进行过一次请求,则表示用户认证失败 | 403 | 表示请求资源的访问被服务器拒绝了 | 404 | 表示服务器上无法找到请求的资源 | 5xx | 服务器出错 | 500 | 表示服务器出错,可能出现了BUG | 503 | 表示服务器暂时处于超负载或正在停机维修 |
2.3 HTTP响应头
?
响应头 | 说明 | 示例 |
---|
Accept-Ranges | 服务器所支持的内容范围 | Accept-Ranges:bytes | Cache-Control | 通知服务器到客户端内的所有缓存机制,表示它们是否可以缓存这个对象及缓存有效时间,时间单位为秒 | Cache-Control:max-age=3600 | Connection | 针对该连接所预期的选项 | Connection:close | Content-Encoding | 响应资源所使用的编码类型 | Content-Encoding:gzip | Content-Language | 响应资源所使用的语言 | Content-Language:zh-cn | Content-Length | 响应体的长度,用8进制字节表示 | Content-Length:348 | Content-Location | 返回数据的一个侯选位置 | Content-Locaiton:/index.html | Content-range | 如果是相应部分消息,表示属于完整消息的哪个部分 | Content-Range:bytes 200-500/800 | Set-Cookie | 设置HTTP cookie | Set-Cookie:userId:123 |
2.4 HTTP响应体
? HTTP响应体中存放服务器返回给前端的数据/资源。
|