HTTP 实用指南 | 青训营笔记

45 阅读2分钟

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

重点

  • HTTP流程和定义
  • HTTP结构和对应内容
  • HTTP常见场景:静态资源 登录
  • HTTP的实际应用

HTTP

初识HTTP

流程

image.png

image.png

什么是HTTP

image.png

  • Hyper Text Transfer Protpcol超文本传输协议
  • 应用层协议,基于TCP协议
  • 请求 响应
  • 简单可拓展
  • 无状态

image.png 每个请求都对应一个响应 (上图为请求 下图响应)

协议分析

发展过程

image.png

报文 结构

image.png

Method方法

image.png Method的一些特点:

Safe安全:不会修改服务器的数据的方法 如GET HEAD OPTIONS

Idempotent:同样的请求被执行一次与连续执行多次的效果是一样的,服务器的状态也一样 所有safe方法都是idmpotent的。 如 GET HEAD OPTIONS PUT DELETE

Statuscode状态码

image.png

RESTful API(不属于报文结构)

image.png 这里资源指动物园

Headers

常用请求头

image.png 常用响应头

image.png

缓存

image.png

分为强缓存和协商缓存
强缓存:如果本地有 则直接用,Expires和cache-cntrol协议头(请求头)
协商缓存:本地有个缓存 需要和server进行彼此验证 来看是否能用,有个协商过程。Etag last-modified为响应头,/后面为对应的请求头

处理缓存的过程

image.png

Cookies

image.png

HTTP2

image.png

image.png

每个帧交错发送

image.png 流控制:如当你看视频 按下暂停键后 停止接受后续视频的数据 改向更高优先级的数据 如你正在聊天

服务器推送:需要frame1,发现frame1使用了frame2,frame4,在对方需要frame1时同时推送frame2 frame4

HTTPS

image.png HTTPS 对称和非对称都有

常见场景

静态资源

image.png

image.png 打开index开头css结尾的文件 状态码200一定发送了请求吗(走完整个流程)?

from(disk)cache表面时本地缓存

image.png

image.png cache control 表明是强缓存,max age秒换成年是一年

access-control-allow-origin:* 所有origin来源都可以访问

content-type css文件

image.png CDN保障就近性,文件名hash保障拿到的是最新文件

文件名hash:如index.xxxx.css 当中间xxxx不一样时 则会去获取最新的

登录

image.png

image.png METHOD一个为OPTIONS,一个为POST

options-跨域

image.png

image.png

image.png

image.png

POST

image.png

image.png accpt:接受的格式为json

set-cookie:httponly加强安全性

image.png 第一种 server在本地存储,第二种server不存储token直接返回,token有一定的格式

大部分用第一种,第二种具有唯一性 且适合登陆时间快

跳转后自动登录

image.png

1e9dad74a39bc480181780c9768b32b.jpg

实际应用

浏览器里的应用

AJAX之XHR

7a6b1c1c9fb1956aaf19c32bbc6e655.jpg

fetch

image.png

node应用

标准库HTTP/HTTPS

image.png

请求库axios

image.png

用户体验

网络优化

image.png

稳定性

image.png

了解更多

通信方式

image.png

基于QUIC,不基于TCP

image.png

总结

这节课讲了HTTP协议 每部分的结构及对应含义,以及它的常见场景和实际应用。内容较多 需要慢慢消化