一、特点
主流版本1.1。HTTP协议传输数据之前,需要先建立连接,连接建立在传输层,传输层协议是TCP。支持客户/服务器模式、简单快速、灵活、无连接、无状态。
二、HTTP访问基本流程
客户端发送请求:方法+URI----简单理解为URI就是URL (URI包含URL)
服务器端返回响应:一般是以响应消息的方式返回
三、客户端与服务器端交互基本过程
(1)在浏览器输入网址url
(2)浏览器做解析地址
(3)封装成TCP包,建立TCP连接(TCP三次握手)
(4)浏览器发送HTTP请求
(5)服务器响应HTTP请求
(6)服务器关闭TCP连接(四次挥手)
(7)浏览器收到响应消息,处理显示相应的响应消息,展示给用户
四、URL组成
格式:Protocol://hostname[:port]/path/[;parameters][?query]#fragment
Protocol:协议类型,HTTP或者HTTPS。
hostname:域名,主机名,IP地址
port:端口号。HTTP默认是80,HTTPS默认是443.
Path:资源路径
Parameters:参数----特殊请求参数,可以是文件名,可选(了解)
Query:请求参数----一般请求参数,可选(重点):咸度,辣度,重量。
Query格式:?参数名=参数值&参数名=参数值
eg:?xiandu=1&ladu=3&zhongliang=2
Fragment:锚点(信息片段)--定位到指定位置,可选
五、请求消息构成
请求行:请求方法+空格+请求地址url+空格+协议版本
请求头:请求的一些附加信息,由“名:值”对组成,每行一对
空行:表示请求头结束,分割请求头和请求体
请求体(可选):具体需要请求的数据,可以没有,get一般没有,post一般有
六、请求方法
常用:
get:查询,比如打开百度网页
post:新增,比如注册新用户,提交表单,上传文本图片视频等
put:修改,比如修改个人信息
delete:删除,比如删除某个商品
不常用:CONNECT、OPTIONS、PATHCH、HEAD、TRACE
七、头部信息
Content-Type:告诉接收方,所发送的数据类型是什么
参考文档:HTTP Headers - HTTP | MDN
八、请求的请求体数据
form data
xml/json格式
九、响应报文组成
状态行:协议版本+空格+状态码+空格+状态码描述
其中协议版本与请求报文一致,状态码描述是对状态码的简单描述
响应头:与请求头部类似,为响应报文添加了一些附加信息
格式:字段名:字段值(若干行)
空行:标识响应头结束,分割响应头和响应体
响应体:用于存放需要返回给客户端的数据信息,以Content-Type应答头信息所描述的格式发送用户所请求的实际数据。
eg:TEXT/HTML,文件,音频,视频,图片,JSON,XML
十、状态码(只有五种)
1xx:告知请求的处理进度和情况
2xx:成功
3xx:表示需要进一步操作
4xx:客户端错误
5xx:服务器端错误
参考文档:HTTP状态码及其含义 HTTP 响应代码 - HTTP | MDN