这是我参与「第五届青训营 」伴学笔记创作活动的第 6 天
PS:因为之前学的TypeScript有些地方没有弄懂,正值春节,就先暂时不写笔记,先写HTTP的内容,等再熟悉一些再补上TypeScript。
1.初识HTTP
在浏览器地址栏输入字符串,从地址到画面,之后发生了什么呢?
初识HTTP
- 超文本传输协议 Hyper Text Transfei Protocol
- 应用层协议,基于TCP协议
- 请求 响应
- 简单可扩展
- 无状态,每个请求都是独立的
2.协议分析
协议的发展历程
1.1版本使用时间最长,标准化的过程,标准版本的协议
不同的起始行有不同的信息
Method
Safe(安全的):不会修改服务器数据的方法
Idempotent(幂等):同样的请求被执行一次连续执行多次的效果是一样的,服务器的状态也是一样的。
所有安全的方法都是幂等的。
状态码
- 200 OK-客户端请求成功
- 301-资源(网页等)被永久转移到其它URL
- 302-临时跳转
- 401Unauthorized-请求未经授权
- 404-请求资源不存在,可能是输入了错误的URL
- 500-服务器内部发生了不可预期的错误
- 504 Gateway Timeout-网关或者代理的服务器无法在规 定的时间内获得想要的响应。
RESTful API
一种API设计风格
- 每一个URL代表一种资源
- 客户端和服务端之间,传递这种资源的某种表现层
- 客户端通过HTTP method,对服务器资源进行操作,实现“表现层状态转化”
常用请求头
HTTP是一个无状态请求,可以利用Cookie,把有权限的主题自动带上
常用响应头
set-cookie可以告诉哪些信息是可以带上的
缓存
协商缓存
- Etag/lf-None-Match:资源的特定版本的标识符,类似于指纹
- Last-Modified/If-Modified-Since:最后修改时间 缓存顺序
cookie
后续的几个值主要是为了cookie的安全使用
HTTP/2概述
更快、更稳定、更简单
帧(frame):HTTP/2通信的最小单位,每个帧都包含帧头,至少会表示出当前帧的所属数据流。二进制传输
消息:与逻辑请求或响应消息对应的完整的一系列帧。
数据流:已建立的链接内的双向字节流,可以承载一条或多条消息。
HTTP/2新特性
- HTTP/2连接都是永久的,而且仅需要每个来源一个连接
- 流控制:阻止发送方向接收方发送大量数据的机制
- 服务器推送