本文中截图全为f12抓包
一、HTTP和HTTPS
HTTP:超文本传输协议
- 以明文的形式传输
- 效率高,但是不安全
HTTPS:HTTP + SSL(安全套接字层)
- 传输之前数据先加密,获取数据内容的时候需要解密
- 效率较低,但是安全
HTPP | HTTPS |
明文传输(运行在TCP之上) | 加密传输(身披SSL外壳的HTTP) |
客户端和服务器无法验证对方身份 | 添加了加密和认证机制的HTTP |
端口:80 | 端口:443 |
消耗更多的CPU和内存资源 | |
通信需要证书(证书需要购买) |
二、HTTP协议之请求
Request Headers ——
1.请求行:GET / HTTP/1.1(请求方法:get;协议:HTTP/1.1版本)
2.请求头:上图中除了请求行,其余为请求头
- User-Agent:用户代理(浏览器标识),服务器可以知道是什么在请求
- 进行测试的时候,这里要进行设置
- f12 —> 点击下图按钮,可以变成手机请求
- 手机的User-Agent:
Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1
- 浏览器的User-Agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36
- cookie:
- 用来存储用户信息的,每次请求都会被携带上,发送给对方的服务器
- 例如:获取登陆后才能访问的页面
- 对方服务器会通过cookie来判断我们的请求是什么
- f12 —> 如下图操作可以看见cookie里面的内容
-主要要观察name和value字段,发送请求的时候,cookie带的name1=value1;name2=value2... ...
3.请求体:
- 只有post请求才有请求体,get请求没有请求体
- 携带数据
- get请求把数据放到url地址后面
- post请求常用于登陆注册,传输大文本(因为post请求携带的数据量比get请求携带的数据量大)
get | post | |
---|---|---|
功能 | 从服务器上获取资源 | 更新服务器上的资源 |
REST服务 | 幂等 | 不幂等 |
幂等:读取同一资源,总得到相同数据 | ||
请求参数 | 请求数据放在url之后 | 请求数据放在请求体 |
安全性 | 低 | 高 |
请求大小 | 小 | 大 |
三、HTTP协议之响应
Response Headers ——
1.响应头:上图中都是响应头
- Set-Cookie:在请求的时候我们会携带cookie,对方服务器就是通过set-cookie这个字段来设置cookie到本地
2.响应体:响应体如下图所示