HTTP实用指南 | 青训营笔记

75 阅读3分钟

今天是我参与字节跳动青训营笔记活动的第四天

初识HTTP

处理输入信息简易分析

1659495095115.pngHTTP协议特点:
1.超文本传输协议
2.应用层协议基于TCP协议
3.请求 响应
4.简单可扩展
5.无状态(每个请求都是独立的)

协议分析

发展历程

1659495489069.png

协议分析-报文

状态码

1xx表示指示信息,表示请求已接收,继续处理
2xx 通常表示请求成功
3xx重定向,要完成请求必须进行更近一步的操作
4xx客户端错误,请求有语法错误或请求无法实现
5xx服务端错误,服务器未能实现合法的请求
常见的状态码
301-资源(网页等)被永久转移到其他URL
302-临时跳转
401-请求未经授权
404-请求资源不存在,可能是输入了错误的URL
500-服务器内部发生了不可预期的错误
504-网关或代理的服务器无法在规定事件内获取想要的响应(超时请求)

常用请求头

Accept-接收类型,表示浏览器支持的MIME类型
Content-Type-客户端发送出去实体内容的类型
Cache-Control-指定请求和响应遵循的缓存机制,如no-cache
If-Modified-Since-对应服务端的Last-Modified,用来匹配文件是否变动,只能精确到1s之内
Expires-缓存控制,在这个时间内不会请求,直接使用缓存,服务端事件
Max-age-代表资源在本地缓存多少秒,有效时间内不会请求而是使用缓存
If-None-Match-对应服务端的ETag,用来匹配文件内容是否改变(非常精确)
Cookie-有cookie并且同域访问时会自动带上
Referer-该页面来源的URL(详细信息)
Origin-最初的请求是从哪里发起的(只会精确到端口),origin比referer更尊重隐私
User-Agent-用户客户端的一些必要信息,如UA头部

常用响应头

1659497256272.png

缓存

1659499952199.png

cookie

关于安全性的cookie
secure 仅在https安全连接时,才可发送cookie Httponly JavaScript脚本无法获得cookie SameSite[None/Strict/Lax] none表示同站跨站都可发送,strict仅在同站发送,lax允许和顶级导航一起发送,并将第三方网站发起的GET请求一起发送

HTTP2概述

帧:HTTP2通信的最小单位,每个帧都包含帧头,至少也会标识出前帧所属的数据流(二进制)
HTTP2的链接都是永久的,而且仅需要每个来源一个链接(复用性)
流控制:阻止发送方向接收方发送大量数据的机制

HTTPS概述

是通过TSL/SSL进行HTTP加密
对称加密:加密和解密用同一个密钥
非对称加密:加密和解密需要俩个密钥:公钥和私钥

静态资源部署方案

缓存+CDN+文件名hash(框架常用处理方式)