这是我参与「第五届青训营 」笔记创作活动的第14天
一、本堂课重点内容:
什么是HTTP、HTTP的发展历程、静态资源。
二、详细知识点介绍:
1.什么是HTTP?
- Hyper Text Transfer Protocol
- 超文本传输协议
- 应用层协议,基于TCP协议
- 请求响应
- 简单可扩展
- 无状态
2.协议分析
Method
- Safe (安全的) :不会修改服务器的数据的方法 GET HEAD OPTIONS
- ldempotent (幂等) :同样的请求被执行一次与连续执行多次的效果是一样的, 服务器的状态也是一样的所有safe的方法都是Idempotent的GET HEAD OPTIONS PUT DELETE
状态码
- 200 OK-客户端请求成功
- 301 资源(网页等)被永久转移到其它URL
- 302 临时跳转
- 401 Unauthorized -请求未经授权
- 404 请求资源不存在,可能是输入了错误的URL
- 500 服务器内部发生了不可预期的错误
- 504 Gateway Timeout-网关或者代理的服务器无法在规定 的时间内获得想要的响应。
RESTful API RESTfulAPI:一种API设计风格; REST - Representational State Transfer (1) 每一个URI代表一 -种资源; (2) 客户端和服务器之间,传递这种资源的某种表现层; (3) 客户端通过HTTP method,对服务器端资源进行操作,实现"表现层状态转化"。
常见请求头
常见响应头
缓存
- 强缓存
- Expires,时间戳
- Cache-Control
可缓存性
no-cache:协商缓存验证
no-store :不使用任何缓存
到期
max-age: 单位是秒,存储的最大周期,相对于请求的时间
重新验证重新加载*
must-revalidate: 一.旦资源过期,在成功向原始服务器验证之前,不能使用
- 弱缓存
- Etag/lf-None-Match:资源的特定版本的标识符,类似于指纹
- Last-Modified/lf-Modified-Since:最后修改时间
3.HTTP/2
- 帧(frame) :HTTP/2 通信的最小单位,每个帧都包含帧头,至少也会标识出当前帧所属的数据流。
- 消息:与逻辑请求或响应消息对应的完整的一系列帧。
- 数据流:已建立的连接内的双向字节流,可以承载一条或多条消息。
- HTTP/2连接都是永久的,而且仅需要每个来源一个连接
- 流控制:阻止发送方向接收方发送大量数据的机制.
- HTTPS: Hypertext Transfer Protocol Secure
- 经过TSL/SSL加密
- 对称加密:加密和解密都是使用同一个密钥
- 非对称加密:加密和解密需要使用两个不同的密钥:公钥(public key) .和私钥(private key)
4.静态资源
- 静态资源方案:缓存+ CDN +文件名hash
- CDN: Content Delivery Network
- 通过用户就近性和服务器负载的判断,CDN确保内容以一种极为高效的方式为用户的请求提供服务
三、课后个人总结:
通过对本次课程的学习让我对HTTP协议有了初步的了解,通过了解http的发展历程,让我了解到了http的组成以及到如今的https的组成,并且还了解到静态资源,通过缓存和CDN以及文件名的Hash来实现静态资源方案。
四、引用参考:
掘金-字节内部课程-HTTP