1、http状态码分类及常见状态码
1XX 服务器收到请求
2XX 请求成功,如200
3XX 重定向如302
4XX 客户端错误,如404
5XX 服务端错误,如500
常见状态码
200 成功
301 永久重定向(浏览器自动处理,配合loacation)
302 临时重定向(浏览器自动处理,配合loacation)
304 资源未被修改
404 资源未找到
403 没有权限
500 服务器错误
504 网关超时
2、restful API
传统api设计: 把每个URL当做一个功能
reatful api设计: 把每个url当做一个唯一的资源
3、request headers有啥
accept浏览器可接收的数据格式
accept-encoding浏览器可接收得压缩算法,如gzip
accept-languange浏览器可接收得语言,如zh-cn
connection: keep-alive 一次tcp链接重复使用
cookie、host
user-agent 浏览器信息
content-type 发送数据的格式
自定义header
缓存相关的headers
4、response headers有啥
content-type 返回数据的格式
content-length 返回数据的大小,多少字节
content-encoding 返回数据的压缩算法,如gzip
5、http缓存机制
强制缓存
cache-control(response headers)
控制强制缓存的逻辑 :
catche-control 的值 max-age(设置过期时间) no-cache(不用强制缓存) nostore(不用强制缓存也不用服务端缓存) private(用户做决定) public(路由代理做缓存)
expires(已经被catche-control 代替)
协商缓存(服务端缓存策略,服务端去判断客户端和服务端资源是否一样,比如304)
服务端返回资源和资源标识
资源标识
在response headers中有两种
last-modified资源的最后修改时间
request headers(这里带入if-modified-since)
etag资源的唯一标识
request headers(这里带入if-none-match)
两者共存,会优先使用etag 因为last-modified只能精确到秒级(我们计算机毫秒级运算),如果资源被重复生成,而内容不变,则etag更精确
6、刷新页面对http缓存的影响
1 正常输入网址(强制缓存有效、协商缓存有效)
2、手动刷新F5,点击刷新按钮(强制缓存无效、协商缓存有效)
3、ctrl+F5 (强制缓存无效、协商缓存无效)
7、网络分层
七层模型:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
应用层:提供服务。
表现层:数据格式转换,数据加密。
会话层:建立、管理和维护会话。
传输层:简历管理维护连接。
网络层:ip选址,路由选择。
链路层:链路管理。
物理层
五层模式:应到层,表现层,会话层合成应用层。
8、http 三次握手
http3次握手:第一次发送SYN,第二次回复应答和ack+SYN,第三次发送ACK
为啥是3次,减少传输次数,防止已失效的连接请求报文。
4次挥手:FIN,ack,FIN,ack。
为啥4次:TCP是全双工模式。
9、HTTP1.0与HTTP 1.1的主要区别
1.长连接
2.节约带宽
3.HOST域
10、HTTP1.1与HTTP 2.0的主要区别
1.多路复用
2.二进制分帧
3.首部压缩
4.服务器推送
11、http3.0(应用层)
1.UDP协议(无连接,传输层,不可靠,单/广播)