计算机网络应用层常问八股

HTTP协议的特点

http 是超文本传输协议,它是一种 Web 通信的协议.如何理解超文本,包含了图片,视频,文件等内容.

http 协议的特点:

HTTP 之间是无状态的,每一个请求都是独立的,需要通过 cookies 或者 Session 来维护状态.

Http 是请求应答模式,只有请求方先发送请求,应答方收到请求之后才能回复,http 是单向的。服务器端不能主动给客户端发消息,可以使用 websokcet 来优化。

底层是基于 TCP 的保证数据的可靠性,https 还基于 SSL 和 TLS。

灵活扩展可以添加请求头实现任意的功能,可以添加 authorization 等请求头字段。

HTTP 的报文格式

alt

请求行、请求体、请求头。

请求行是: 请求方法 +URL +HTTP 的协议版本

http 和 https 的区别

从安全的角度来看: http 是明文传输的,并不安全。https 是基于 ssl 和 tls 协议传输的,传输内容加密较为安全。

使用的传输层端口:http 默认使用的是 80 端口,https 默认使用的是 443 端口。

从建立连接连接都是基于 TCP 三次握手的,但是 https 还要经过 SSL/TLS 握手,才能进行加密报文传输.

证书: HTTPS 需要使用数字证书来验证服务器的身份,并确保数据传输的安全性,证书由第三方的机构颁发,用户证明服务器的身份和所有权.Http 并没有使用证书进行身份验证和加密.

https://www.runoob.com/w3cnote/http-vs-https.html

alt

SSL/TLS 握手过程:

感觉只有腾讯和字节会问详细过程,可以讲一下对称加密和非对称加密。

细节这谁记得住, ca 证书是使用的对称加密,传输数据使用的是非对称加密算法.

alt

常见的状态码

HTTP 有五类常见的状态码,分别是,分别是数字 12345 开头的数字. alt

301 和 302,301 代表永久重定向,302 代表临时重定向,这个用在短链的项目中.

短链中使用 302 临时重定向,访问 A 地址重定向带 B 地址去,临时重定向是先访问 A,然后再跳转到 B.但是永久重定向就直接访问了 B ,并不会 访问 A.

400 表示客户端发送的报文有错误. 403 是请求的服务器资源权限不够,没有权限。401 没有携带 token 信息。404Not Found 表示服务器上面没有该资源.

502 是服务内部出现错误 504 是服务内存超时,网关没有重上游获取到数据.

长连接和短链接

HTTP1.0 的时候是短链接,在 1.1 的时候是长连接.

字段是 connection: keep-alive.

alt

建立一次的 TCP 连接后,可以进行多次的 HTTP 通信.

但是在 1.1 的时候还是需要请求-响应,保持有序的. 在 2.0 的时候可以实现无序的请求.

get 请求的幂等性

首先幂等性(Idempotence) 指的是:同一个请求方法无论调用一次还是多次,对服务器资源的状态(副作用)只会产生一次影响,即多次执行不会带来额外的状态改变。 如果 按照 Restful 编写接口,get 请求时获取资源的,是幂等性的,post 请求添加数据不是幂等性的,但是如果我用 get 请求去添加数据,那么就不是幂等性了。 所以 get 不一定是幂等性的。

从服务器获取时间可以用 get 请求。

get请求一定是幂等的吗?如果从服务器请求时间那么使用get还是post?聊一聊你对幂等的理解(我怀疑是我对get的幂等性理解错了,面试官一直在追问)

HTTP 1.0 1.1 2.0 3.0 的区别

alt

1.0 到 1.1 实现了长连接的传输,但是还是发送还是有序的,不能实现真正的并行。

2 通过 stream 实现多路复用,可以实现真正的并行。

alt

DNS 解析

应用层 DNS 解析 是将 URL 域名转为 IP 地址的,在网络中传输的时候是路由器来转发数据包,需要使用 IP 地址来转发. URL 更容易记住.DNS 是基于 UDP 实现的,也可能是 TCP

Cookie 和 Session

本质都是 Http 是无状态的,需要用这两个来保存信息.

Cookie 存储在客户端,Session 存储在服务器短,Session 不能跨服务,可以用存储到 Redis 中去.

Cookie 存在客户端可能会存在安全性的问题

#计算机网络面试##应用层协议#
牛牛的面试专栏 文章被收录于专栏

牛牛的面试专栏,希望自己在25年可以拿到一份大厂的SP Offer 你的点赞和收藏都是我持续更新的动力

全部评论
“细节这谁记得住, ca 证书是使用的对称加密,传输数据使用的是非对称加密算法.”这里写反了吧
1 回复 分享
发布于 04-09 21:50 上海

相关推荐

11-04 19:05
已编辑
东莞城市学院 单片机
不知道怎么取名字_:你这个要实习两年?哪有这么久的,感觉就是即使你毕业了,但还按实习的话,是不是不用给你缴社保公积金啥的
点赞 评论 收藏
分享
来,说点可能被同行“骂”的大实话。🙊当初接数字马力Offer时,朋友都说:“蚂蚁的“内包”公司?你想清楚啊!”但入职快一年后的今天,我反而对他有了不一样的看法!🔹 是偏见?还是信息差!之前没入职之前外面都在说什么岗位低人一等这类。实际上:这种情况不可至否,不能保证每个团队都是其乐融融。但我在的部门以及我了解的周边同事都还是十分好相处的~和蚂蚁师兄师姐之间也经常开一些小玩笑。总之:身份是蚂蚁公司给的,地位是自己挣的(一个傲娇女孩的自述)。🔹 待遇?玩的就是真实!试用期工资全额发!六点下班跑得快(早9晚6或者早10晚7,动态打卡),公积金顶格交。别听那些画饼的,到手的钱和下班的时间才是真的(都是牛马何必难为牛马)。🔹 能不能学到技术?来了就“后悔”!我们拥有权限直通蚂蚁知识库,技术栈多到学不完。说“学不到东西”的人,来了可能后悔——后悔来晚了(哈哈哈哈,可以不学但是不能没有)!💥 内推地址:https://app.mokahr.com/su/ueoyhg❗我的内推码:NTA6Nvs走我的内推,可以直达业务部门,面试流程更快速,进度可查!今天新放HC,之前挂过也能再战!秋招已经正式开始啦~机会就摆在这,敢不敢来试一试呢?(和我一样,做个勇敢的女孩)
下午吃泡馍:数字马力的薪资一般哇,5年经验的java/测试就给人一万出头,而且刚入职第三天就让人出差,而且是出半年
帮你内推|数字马力 校招
点赞 评论 收藏
分享
评论
3
22
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务