这是我参与「第四届青训营 」笔记创作活动的的第5天
01.初识HTTP
什么是HTTP
- Hyper Text Transfer Protocol超文本传输协议
- 应用层协议,基于TCP协议
- 请求响应
- 简单可扩展
- 无状态
02.协议分析
HTTP、0.9单行协议:
- 请求GET/mypage.html
- 响应只有HTML文档
HTTP/1.0构建可扩展性:
- 增加了Header
- 有了状态码
- 支持多种文档类型
HTTP/1.1标准化协议:
- 链接复用
- 缓存
- 内容协商
HTTP/2更优异的表现:
- 二进制协议
- 压缩header
- 服务器推送
HTTP/3草案
Method Safe(安全的);不会修改服务器的数据的方法
GET HEAD OPTIONS
idempotent(幂等):同样的请求被执行一次与连续执行多次的效果是一样的。服务器的状态也是一样的,所有safe的方法都是idempotent的
状态码
200OK-客户端请求成功
301-资源(网页等)被永久转移到其他URL
302-临时跳转
401Unauthorized-请求未经授权
404-请求资源不存在,可能是输入了错误的URL
500-服务器内部发生了不可预期的错误
504 Gateway Timeout-网关或者代理的服务器无法在规定的时间内获得想要的响应。
RESTful API:一种API设计风格
- 每一个URI代表一种资源;
- 客户端和服务器之间,传递这种资源的某种表现层;
- 客户端通过HTTP method,对服务器端资源进行操作,实现“表现层状态转化”。
常用请求头
Accept 接收类型,表示浏览器支持的MIME类型
Cookie 有cookie并且同域访问时会自动带上
User-Agent 用户客户端的一些必要信息,如UA头部等
缓存
强缓存
- Expires
- Cache-Control
- 可缓存性:no-cache/no-store
- 到期:max-age
- 重新验证、重新加载:must-revalidate
协商缓存
Set-Cookie-response
secure 仅在HTTPS安全连接时,才可以发送Cookie
HttpOnly JavaScript脚本无法获得Cookie