7.22
介绍一下TCP/IP模型和OSI模型的区别
从输入 URL 到页面展示到底发生了什么?
7.23
HTTP请求报文和响应报文是怎样的,有哪些常见的字段?
http 保温分为请求报文和响应报文。
一个标准的http请求报文分为请求行 请求头 请求体 空行
请求行包含三个字段
方法 执行资源的方法 指定要执行的操作
资源路径 请求的资源的URL(统一资源标识符)
http:http版本协议
请求头常使用以下9个字段
host 请求服务器的域名
accept 客户端处理的媒体类型
accept-encoding 客服端解码的内容编码
content-type 请求体媒体类型
content-length请求体长度
cookie 存储在客服端cookie数距
if-none-match 资源的etag值,用于缓存控制
connection 处理服务器的数据连接 管理连接的选项如keep alive
-
Authorization:用于认证的凭证信息,比如token数据。
空行 :请求头和请求体之间,用于分开两者;请求体:向服务端发送的数,通常用put和poost请求
响应报文 服务端向客服端发送 返回的数据格式,服务端处理客服端的请求并发送数据
一个标准的HTTP响应报文通常包含响应报文分为状态行 响应头 响应体 空行
状态行 :http版本 状态码 状态信息
响应头部也是以键值对的形式提供的额外信息,类似于请求头部,用于告知客户端有关响应的详细信息。响应头常使用如下字段
content type 响应体媒体类型
content length 响应体长度
expires 响应资源的过时
last-modified 资源最后修改的日期 时间
set-cookies 响应中设置cookie数据
location 重定向时资源地址
elag 用于缓存控制 响应体的实体标签,用于缓存和条件请求。
access-control-allow-origion 跨院资源共享策略 指定哪些域可以访问资源
-
Server:指定服务器的信息。
空行在响应头和响应体之间,表示响应头的结束。响应体存放服务端向客服端实际传送的信息,并进行缓存控制和条件请求可以是文本、HTML页面、图片、视频等,也可能为空。
HTTP有哪些请求方式?
get 请求资源
put 更新指定资源。
post 发送指定资源 向指定资源提交数据进行处理请求(例如表单提交)。
delete 删除指定资源
patch 更新资源 对资源进行部分更新。
HEAD:获取报文首部,不返回报文主体.
OPTIONS:查询服务器支持的请求方法。
GET请求和POST请求的区别
资源 用途:get请求资源
数据大小 get存在url,受限制
数据安全性 get暴漏在url中
幂等性 多个相同的get请求不会改变资源状态
缓存 get可以被缓存
数据传输:GET请求将参数附加在URL之后,POST请求将数据放在请求体中。
7.24
HTTP中常见的状态码有哪些?
五种
1.提示信息
2.请求成功
3.请求重定向
4.请求出错
5.服务器错误
常见的有
200:客户端请求成功
201:
204 :不返回内容
301:请求永久重定向
302: 请求暂时重定向
304:不返回内容
401:请求资源需要ip认证
403:请求资源拒绝访问
404:请求资源不存在
500:服务器内部错误
503:
什么是强缓存和协商缓存
http缓存机制分为强缓存和协商缓存,其减轻服务器内存的负担并且提高网页加载速度。
强缓存:使用本地缓存文件,不向服务端发送请求
expires强缓存:设定强缓存的时间段,在该时间段内使用本地文件,获取本地时间戳,与上次获取资源的expires字段的时间段比较,如果一致,使用本地文件。但是有个漏洞:本地时间可能不准。
。。。
协商缓存:强缓存失败时,向服务端发送请求,由响应报文头体中的etag last-modified等字段与服务端验证,如果一致服务端向客户端发送状态码304 last-mot-modified 表示资源没有改变,浏览器使用本地缓存,否则,向客服端发送资源
last-modified协商缓存
服务端收到请求后,向客服端发送last-modified字段,下次请求客户端请求头部标由last-modified-not字段,与服务端资源 的last-modified字段对比,如果一致,服务段发送303not-modified字段
两个弊端
文件修改时间的记录单位时秒,如果文件在极短时间内完成改动(几百毫秒),则文件不会修改
如果文件内容不变 文件名修改 还是会更新文件
etag协商缓存
将比较时间戳方式改为比较文件指纹(根据文件内容生成的唯一哈希表)
服务端将etag值发送给客服端,下次请求时客服端响应头的if-mo-match字段包含etag值,与资源的etag值对比 一致 发送303 not-modified,否则将etag和资源发送给客服端