1、概念
Hyper Text Transfer Protocol(超文本传输协议)用于从万维网(就是www)服务器传输超文本到本地浏览器的传送协议。
HTTP协议是基于TCP的应用层协议,它不关心数据传输的细节,主要是用来规定客户端和服务端的数据传输格式,最初是用来向客户端传输HTML页面的内容。默认端口是80。
HTTP是基于请求与响应模式的、无状态的、应用层的协议。
TCP——传输层协议
IP——网络层协议
2、HTTP请求报文(报文===请求数据)
HTTP请求报文主要 由请求行、请求头部、空一行、请求体 部分组成
请求行:请求方式 + url + 协议
2.1 请求方法(Request Method):
请求方法 | 备注 |
---|---|
POST | 创建资源-增加 |
GET | 获取资源-查询 |
PUT | 替换资源-修改 |
DELETE | 删除资源 |
HEAD | 获取服务器响应消息头 |
PATCH | 更新资源,替换部分资源 |
2.2 URL(Uniform Resource Locator):
统一资源定位符,用于描述网上的资源
格式:schema://host[:port]/path/.../[?query-string]
scheme:协议,如http,https,ftp等
host:域名或者IP地址 DNS会将域名转换成IP地址
port:端口
path:资源路径
query-string:发送的参数
示例:https://www.baidu.com/s?wd=接口
2.3 请求头
请求头 | 描述 |
---|---|
Host | 主机ip地址或域名 |
User-Agent | 客户端相关信息,比如操作系统、浏览器等信息,用户代理 |
Accept | 指定客户端接收信息类型,如:image/jpg,text/html,application/json 表示任意类型的数据 |
Accept-Charset | 客户端接受的字符集,如gb2312、iso-8859-1 |
Accept-Encoding | 可接受的内容编码,如gzip——编码方式 |
Accept-Language | 接受的语言,如Accept-Language:zh-cn |
Authorization | 客户端提供给服务端,进行权限认证的信息 |
Cookie | 携带的cookie信息 |
Referer | 当前文档的URL,即从哪个链接过来的 |
Content-Type | 请求体内容类型,如Content-Type: application/x-www-form-urlencoded |
Content-Length | 数据长度 |
Cache-Control | 缓存机制,如Cache-Control:no-cache |
Pragma | 防止页面被缓存,和Cache-Control:no-cache作用一样 |
X-Requested-With | 如果 requestedWith 为 null,则为同步请求; 如果 requestedWith 为 XMLHttpRequest 则为 Ajax 异步请求。 |
3、HTTP响应报文
HTTP响应报文主要 由状态行、响应头部、空一行、响应正文 部分组成
3.1 状态码
状态码(Status Code ):用以表示网页服务器HTTP响应状态的3位数字代码
状态码 | 描述 |
---|---|
1XX | 请求已接受待处理 |
2XX | 请求成功并返回 |
3XX | 重定向相关,请求资源位置发生了变化 |
4XX | 客户端发送请求错误 |
5XX | 服务器端错误 |
3.2 响应头
响应头 | 描述 |
---|---|
Server | HTTP服务器的软件信息 |
Date | 响应报文的时间 |
Expires | 指定缓存过期时间 |
Set-Cookie | 种Cookie |
Last-Modified | 资源最后修改时间 |
Content-Type | 响应的类型和字符集,如:Content-Type: text/html; charset=utf-8 |
Content-Length | 内容长度 |
Connection | 如Keep-Alive,表示保持tcp连接不关闭,不会永久保持连接,服务器可设置 |
Location | 指明重定向的位置,新的URL地址,如304的情况 |