前端|青训营笔记

99 阅读2分钟

HTTP实用指南|青训营笔记

这是我参与「第四届青训营 」笔记创作活动的的第5天。

本堂课的知识要点:

  • 初识HTTP
  • 协议分析
  • 常见场景
  • 实际应用
  • 了解更多

01初识HTTP

在浏览器地址栏搜索发生了什么?

  • 输入搜素

  • 浏览器处理

  • 生成有效地址

  • 发送给服务器

  • 服务器处理并发送响应

  • 浏览器读取响应并且渲染

de14875be5183527c633ed1cb51faed.png

02协议分析

http协议发展历程

5b5512c640d2ed7ce16548659154d81.png

报文

  • method

671c1f2a24515ba3eb8eb5c34f62141.png

  • safe:get head option。不会修改服务器数据的方法都是安全的方法
  • idempotent:get head option put delete。同样的请求被执行一次与连续执行多次效果是一样的,服务器的状态也是一样的。所有safe的方法都是idempotent的

状态码

1630f967e959c90469256190b423f38.png

1xx:请求已结束,继续处理

2xx:请求成功

3xx:重定向,需要进行更进一步操作

4xx: 客户端错误

5xx:服务器错误

restful API————一种api设计风格

常用请求头

f5ff699ee40f533f7336360dceecd39.png

常用响应头

333f0ff10fc7addf997ecf0db751475.png

  • 强缓存:资源本地有了,可以直接用
  • 协商缓存:本地有资源但不确定是不是最新

0fb8a77d6a211d3ca52fac819b9d000.png

缓存机制

9dec67c78d7b1339ddcc6ec1a458848.png

cookie

set-cookie 浏览器设置的返回信息

HTTP2优点

更快更稳定更简单

将信息划分为帧

eb64565a41fb064106f8bd6240b0b44.png

HTTPS

ed9f8dd1232a62ffe25b88f31ced5ea.png以HTTP为基础,进行数据加密,使安全性提高。 非为对称加密:使用同一个密钥 与非对称加密:使用两个不同密钥

03场景分析

静态资源, 登录。

d39dd6a551eddf2991bdfbb15797b43.png

状态码200,from···cache从本地缓存获取资源。

静态资源方案:缓存+cdn+文件我hash

4bd3765253b155963b2a33effe5bf93.png

登录

表单登录

d6fc435131407063757a60e91c85363.png

  • 为什么会有option

因为存在跨域

  • 跨域是因为浏览器同源策略的存在

跨域:协议,ip,端口,其中一个不一样就是跨域

  • 先发起预请求,确认服务器是否允许跨域。

c10757902f4e36b24304c5959f02bc3.png

跨域解决方案

  • cors
  • 代理服务器

同源策略是浏览器的安全策略,不是http的。
通过一个同源服务器,向同源服务器发起请求,再由同源服务器向服务器发起请求。

  • Iframe

04实际应用

登录

ec4d088e3f60e779050b75d56ed7e12.png

75edb9db67ed92d1c2f3a77691b0752.png

  • 为什么能记住登录状态:session+cookie鉴权, token

22ee6748e4c14e7574d823c9767a6b3.png

跳转网站为什么自动登录

sso:单点登录

实战:浏览器篇

  • AJAX之XHR

d09d228bb1e18b8a42751f7b0a61b3a.png

  • AJAX之Fetch

c49246e4dbcfb03ddf247c5d6aab638.png

常用请求库:axios,

f1344400e1c27336fc09dd3e01cc582.png

用户体验--网络优化

  • HTTP2
  • cdn动态加载
  • dns预解析
  • 网络预链接
  • 域名
  • 压缩
  • https性能优化

用户体验--稳定性

832890251d60a06eaa3c998d39c07a8.png

扩展05--通信方式

websocket:聊天室

03b42b0a5d70b5f30bdbeb0fe4898cb.png