代码随想法录八股训练营

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和资源发送给客服端

7.27

每日任务1TCP连接如何确保可靠性

TCP流量控制是怎么实现的?

既然提到了拥塞控制,那你能说说说拥塞控制是怎么实现的嘛

UDP怎么实现可靠传输

你可能感兴趣的:(c++)