1、HTTP 的报文类型
HTTP 有两类报文:
(1) 请求报文:从客户端发送给服务器端的报文
(2) 响应报文:服务器到客户的回答
两种报文的结构如下图:
HTTP 请求报文(响应报文)是由三部分组成:
1)请求行(响应报文中称之为状态行): 用于区分是请求报文还是响应报文。
2)请求头(响应头): 用来说明浏览器、服务器或报文主体的-些信息。在每一个首部行中都有首部字段名和它的值
3)请求主体(响应主体)
2、http请求报文(请求行、请求头、请求主体)
2.1、请求行
请求报文的 “请求行” 只有三个内容,即:方法、请求URL、以及HTTP的版本。
比如:上例中链接到“ 清华大学院系设置” 页面的请求行:GET http://www.tsinghua.edu.cη/chn/yxsz/index.htm HTTP/1.1
此时,该请求报文的请求行就是:GET /chn/yxsz/index. htm HTTP /1. 1 {请求行使用了相对URL}
2.2、请求头
浏览器通过请求头告诉服务器关于浏览器的一些信息,格式: 请求头名称:请求头值
参数介绍:
Accept-Encoding: gzip, deflate 浏览器支持的压缩编码是 gzip 和 deflate。
Accept-Charset: GB2312,utf-8;q=0.7,*;q=0.7 浏览器支持的字符编码分别是 GB2312、utf-8 和任意字符
Accept-Language: zh-cn,zh;q=0.5 浏览器支持的语言分别是中文和简体中文
Accept: text/html,application/xhtml+xml,application/xml,application/json,*/* 表明浏览器所支持接收的数据类型,表明所支持的 MIME 有:html、xhtml+xml、xml、json、任何类型
Host: www.tsinghua.edu.cn 此行是请求头的开始,表明发出请求的客户端的域名
Connection: close 告诉服务器发送完请求的文档后就可释放连接
User-Agent: Mozilla/5.0 表明浏览器的一些版本信息
Referer:https://www.baidu.com/ 浏览器目前所处页面的URL
Content-type:application/json 告诉服务器我们发送的请求信息的格式
2.3、请求主体
请求主体放的是请求的参数,比如:username=aaa。
GET 请求没有请求主体,它的请求参数放在请求 URL 中:www.baidu.com?username=aaa
3、http 响应报文(状态行、响应头、响应主体)
3.1、状态行
响应报文的第一行就是状态行。状态行包括三项内容,即:HTTP的版本、状态码、以及解释状态码的简单短语。
状态码(Status-Code)都是三位数字的, 分为5大类共33种:
lxx表示通知信息的, 如请求收到了或正在进行处理。
2xx表示成功, 如接受或知道了。
3xx表示重定向, 如要完成请求还必须采取进一步的行动。
4xx表示客户的差错, 如请求中有错误的语法或不能完成。
5xx表示服务器的差错, 如服务器失效无法完成请求。
常见的状态码:
200 请求成功
302 重定向
304 页面缓存
403 没有权限访问
404 页面不存在
500 后端程序报错
具体的状态码查看:http://www.runoob.com/http/http-status-codes.html
4、HTTP中请求头和响应头的各个字段及含义
参考:https://www.cnblogs.com/widget90/p/7650890.html
5、Content-Type 字段各个值的含义
参考:https://www.cnblogs.com/cyanlong/p/5726793.html