这是我参与「第四届青训营 」笔记创作活动的第22天
HTTP协议:
- Hyper Text Transfer Protocol(超文本传输协议)
- 应用层协议,基于TCP协议
- 请求 响应
- 简单可扩展
- 无状态
协议分析-发展
- HTTP/0.9单行协议:请求GTE/mypage.html,响应的只有HTML文档
- HTTP/1.0构建可扩展性:增加了Header,有了状态码,支持多种文档……
- HTTP/1.1标准化协议:链式复用,缓存,内容协商……
- HTTP/2更优异的表现:二进制协议,压缩Header,服务器推送……
协议分析-报文
- GET :请求一个指定资源的表现形式,使用GET的请求应该只被用于获取数据
- POST:用于将实体提交到指定的资源,通常导致在服务器上的状态变化或副作用
- PUT :用请求有效载荷替换目标资源的所有当前表示
- DELETE:删除指定的资源
- HEAD :请求一个与GET请求的响应相同的响应,但没有响应体
- CONNECT :建立一个到由目标资源标识的服务器的隧道
- OPTIONS :用于描述目标资源的通信选项
- TRACE :沿着到目标资源的路径执行一个消息回环测试
- PATCH:用于资源应用部分修改 分类:
Safe(安全的):
不会修改服务器的数据的方法 (GET,HEAD,OPTIONS)
Idempotent(等幂):
同样的请求被执行一次与连续执行多次的效果是一样的,服务器的状态也是一样的,所有的safe的方法都是Idempotent (GET,HEAD,OPTIONS,PUT,DELETE)
状态码:
常见请求头:
缓存:
Coolie:
| Set cookie | response | |
|---|---|---|
| Name=value | 各种cookie的名称和值 | |
| Expires=Date | Cookie的有效期,缺省时Cookie仅在浏览器关闭之前有效 | |
| Path = Path | 限制指定Cookie的发送范围的文件目录,默认为当前 | |
| Domain=domain | 限制cookie生效的域名,默认为创建cookie的服务域名 | |
| secure | 仅在HTTPS安全链接时,才可以发送Cookie | |
| HttpOnly | javascript脚本无法获得Cookie | |
| SameSite=[None、Strict、Lax] | None统战、跨站请求都可以发送,Strict仅在同站发送,Lax允许与顶级导航一起发送,并将与第三方网站发起的GET请求一起发送 |