HTTP | 青训营笔记

49 阅读4分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 4 天

初始http

01 初始http

地址栏字符串-呈现页面

image.png

应用层http相关信息

image.png 基于传输层中的tcp协议(TCP、ADP)做的一个协议

  • 每一个http分为请求-语义简单、响应两个部分
  • 简单可扩展:自定义header...
  • 无状态:每一个请求都是孤立的、当前请求不知道之前的状态

02协议分析

发展

image.png

  • 0.9版本:最初始简单的协议
  • 之后越来越丰富、增加承载的类型

http2:传输更快 更稳

协议结构-每一部分

image.png

-Requests和Responses 结构一样

image.png

Method

image.png

有些方法是安全的,从服务器角度。

状态码

image.png

401:请求没有携带权限信息,或者信息有错

image.png

REST:表现层状态转化

请求与响应里一些常见的请求头

image.png

  • http是无状态,利用Cookie字段自动带上状态,有权限的cookie会自动带上-用户是否登录?

  • User-Agent:例如从安卓、pc发送的还是别的?

image.png

  • Content-Type:有可能css/html...
  • Access-Control-Allow-Origin:允许请求接口的Origin头部

缓存分为两类

image.png

强缓存:资源本地有了,直接用

  • Expires:到期时间-具体的
  • Cache-Control:请求是否可以缓存
  • no-cache:可以协商缓存,但是需要用强缓存验证

协商: 本地有,但不清楚能不能直接用,需要与server端通信确认下。

  • Etag基本都是字符串
  • Last-Modi..:响应
  • If-Modified...:请求

缓存优先级-过程

image.png

cookie

image.png

http/2概述

image.png

  • http/1传输的完整的信息

  • HTTP/2用的是帧的方式

  • 2进制比文本传输效率更高,也添加了一些压缩算法

image.png

不需要按顺序,可以并行或者串行发送,接收方接收到再重新组织

提高效率。

image.png

每一个目标和来源地址连接后,是永久的。链接复用性

  • 流控制:主动性:主动拒绝server大量数据请求。例如:看视频、时间比较长-数据量比较大,若视频暂停了,不再继续缓存,将资源让给其他优先级更高的信息处理部分。

  • 服务器推送:主动推送能力

  • 需要视情况而定使用这些能力。

https:比http多了一个加密,更安全

image.png

对称加密和非对称加密混。

03场景分析-真实的线上case

image.png

image.png

200的状态码是一定有真实的网络请求?from cache-从本地缓存拿到的响应,没有大的链路。

image.png

静态资源有什么部署方案?

image.png

  • 加快加载速度。
  • CDN:就近策略,若最近的没有,则一步步回源上去。

强缓存: 一年,够快了,但如何保证拿到的是最新。

  • 因此在文件名做手脚,就每次变化时候就改变文件名-版本号、hash。保证用户每次刷新的时候是最新的资源。

登录

image.png

表单登录和扫码登录

处理跨域请求-options应用

image.png

区别跨域

image.png

这三部分有区别都认为跨域-scheme..

CORS

只有在复杂请求才会预请求。大部分 image.png

代理服务器-应用较多

image.png

webpack应用:本地调试怎么访问线上资源?等

场景分析-登录

image.png

image.png

  • content-type:json、
  • Request中content-type:form
  • accept:接受格式是一样的

下一次刷新还可以记录登录的刷新

涉及鉴权方案:大部分是第一个方案

image.png

  • 登录后发起提交请求给server,判断正确生成session存储起来,借setcookie,种到这个域名、地址。下一次浏览器带着cookie策略。与server比较。

  • JWT:server生成一个token有一些固定格式,不存储直接返回给浏览器里面。下一次请求里面放在header里面。发给server解析验证后发回给浏览器。-优点:唯一性,登录时间较短的时候、首次注册找回密码的时候邮箱发邮件点击链接。

发文章

image.png

image.png

**sso:**子应用做到信息共享:是大应用的一部分

04 实战

发起http协议

image.png

image.png

image.png

image.png

image.png

劫持:商家广告等。。

扩展-通信方式

WebSocket

image.png

通信底层-基于UDP封装,除了首次以外基本不耗时

image.png