这是我参与「第四届青训营 」笔记创作活动的的第6天
1. 什么是HTTP
- Hyper Text Transfer Proptocol 超文本协议
- 应用层协议 基于TCP协议
- 请求 响应 -简单可扩展
- 无状态(所以要种cookie)
2. 协议发展
2.1 HTTP/0.9 单行协议
- 其请求GET/mypage.html
- 响应只有HTML文档
2.2 HTTP/1.0 构建可扩展协议
- 增加了Header
- 有了状态码
- 支持多种文档类型
2.3 HTTP/1.1 标准化协议
- 链接复用
- 缓存
- 内容协商
2.4 HTTP/2.0 更优异的表现
- 二进制协议
- 压缩header
- 服务器推送
帧(frame) :HTTP/2通信的最小单位,每个帧都包含帧头,至少也会标识出当前帧所属的数据流。
消息:与逻辑请求或响应消息对应的完整的一系列帧。
数据流:已建立的连接内的双向字节流,可以承载一条或多条消息(交错发送,接收方重组织)。
HTTP/2连接都是永久的,而且仅需要每个来源一个连接.
流控制︰阻止发送方向接收方发送大量数据的机制
3. http请求头格式以及请求方法
看自己写的HTTP文件夹下的readme.md
4. 状态码
- 1xx: 指示信息,表示请求已接收,继续处理
- 2xx: 成功,表示请求已被成功接收、理解、接受
200 OK - 客户端请求成功
- 3xx:重定向,要完成请求必须进行更讲一步的操作
301 - 资源(网页等)被永久转移到其它URL; 302 - 临时跳转
- 4xx:客户端错误,请求有语法错误或请求无法实现
401 Unauthorized -请求未经授权; 404 -请求资源不存在,可能是输入了错误的URL
- 5xx:服务器端错误,服务器未能实现合法的请求
500 - 服务器内部发生了不可预期的错误;504 Gateway Timeout-网关或者代理的服务器无法在规定的时间内获得想要的响应
5. RESTful API
RESTful API :一种API设计风格;REST - Representational State Transfer
- 每一个URI代表一种资源;
- 客户端和服务器之间,传递这种资源的某种表现层;
- 客户端通过HTTP method,对服务器端资源进行操作,实现"表现层状态转化"。请求 如:DELETE/zoos/ID -》 204 NO CONTENT -》 删除某个动物园,删除数据成功
6. 缓存
强缓存和协商缓存
7. cookie
属性:Name、Expires、Path、Domain、secure、HttpOnly、SameSite
解释一下SameSite:
8. 静态资源
静态资源方案∶缓存+CDN+文件名hash
CDN : Content Delivery Network
通过用户就近性和服务器负载的判断,CDN确保内容以—种极为高效的方式为用户的请求提供服务.
9.场景分析-登陆
1.向什么地址做了什么动作?
- 使用POST方法 -目标域名sso.toutiao.com
- 目标path是/quick_login/v2/
![]()
2.携带了哪些信息,返回了哪些信息
- 携带信息: Post body,数据格式为form; 希望获取的数据格式为json ;·已有的cookie
- 返回信息: 数据格式json;种cookie的信息
- 下一次进入页面为什么能记住登陆态呢?
- session + cookie
- JWT(JSON web token)
- 单点登录 SSO:Single Sign On
比如点击发文章后,跳转到另外一个网站,已经自动登录,用户体验nice!
10.网络优化:
预解析、预链接
<link rel="dns-prefetch" href="//example.com">
<link rel="preconnect" href="//cdn.example.com" crossorigin>
总结
青训营里面的讲课老师讲得内容都很细,很多知识点都讲到了,超级nice!!!