HTTP实用指南 | 青训营笔记

125 阅读3分钟

这是我参与「第四届青训营 」笔记创作活动的的第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. 缓存

强缓存和协商缓存 image.png

7. cookie

属性:Name、Expires、Path、Domain、secure、HttpOnly、SameSite

解释一下SameSite: image.png

8. 静态资源

静态资源方案∶缓存+CDN+文件名hash

CDN : Content Delivery Network

通过用户就近性和服务器负载的判断,CDN确保内容以—种极为高效的方式为用户的请求提供服务.

9.场景分析-登陆

image.png 1.向什么地址做了什么动作?

  • 使用POST方法 -目标域名sso.toutiao.com
  • 目标path是/quick_login/v2/

image.png image.png 2.携带了哪些信息,返回了哪些信息

  • 携带信息: Post body,数据格式为form; 希望获取的数据格式为json ;·已有的cookie
  • 返回信息: 数据格式json;种cookie的信息
  1. 下一次进入页面为什么能记住登陆态呢?
  • session + cookie
  • JWT(JSON web token)
  1. 单点登录 SSO:Single Sign On

比如点击发文章后,跳转到另外一个网站,已经自动登录,用户体验nice!

10.网络优化:

image.png

预解析、预链接

<link rel="dns-prefetch" href="//example.com">
<link rel="preconnect" href="//cdn.example.com" crossorigin>

总结

青训营里面的讲课老师讲得内容都很细,很多知识点都讲到了,超级nice!!!