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

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 上海

相关推荐

头像
04-07 19:46
门头沟学院 Java
美团3.6 投递,参加第一批笔试(只 a 了一道😅),3.21 一面,3.25 二面,3.26 oc,28 号正式收到 offer。美团的流程真的超级快,好感度拉满🌟,每场面试体验感都特别好。阿里系- 阿里控股、阿里云:简历直接挂😭- 淘天:3.6 投递,前两个志愿被挂,后来被捞。面试官加我约面试,但因为笔试没发挥好,最终还是挂掉了。- 饿了么:3.6 投递,第一批笔试,和朋友都 a2,然而我一直在泡池子没约上面,朋友倒是有过一次电话面,不过挂了之后又被捞了。我这边直接收到邮箱通知流程结束,真的很好奇饿了么捞人的逻辑😵- 高德:3.10 投递,笔试有点难度,a1.2 左右。3.27 一面,后来拒了。- 蚂蚁:3.17 投递,笔试 a1.5 左右。约了 3.31 一面,但因为已经签了美团,就拒了。- 盒马:3.20 投递,3.25 电话面,之后让我做笔试,过了笔试约二面。- 飞猪:约了一面后就没后续了。- 菜鸟、阿里国际、钉钉(开得比较晚):只投递了,目前只收到阿里国际的笔试邀约。- 灵犀互娱:3.6 投,泡了很久池子才发笔试,ak 了之后就没动静了。其他大厂 & 知名中厂- 京东:3.17 投,一直在泡池子。- 鹅厂:3.20 投,比较晚了,而且选的 base 是家那边,一直没被捞,后面我主动取消了。- 携程:3.6 投递,第一批笔试 a3,3.20 面试,后续进人才库了(估计是手撕代码没撕出来,被面试官绕晕了,不过还是很羡慕能居家办公的岗位)。- pdd:投得晚,a 了 1.7/3 左右。3.28 一面,4.2 二面,还在等后续(面试官提到工作强度比较大)。- 虾皮:3.10 投,第一批笔试,a 了 3/4(吐槽一下虾皮的笔试,输入输出都不写清楚),一直没约面。- 小米:开得晚,3.25 投递,泡池子。- 理想汽车:3.26 投,泡池子。- 蔚来:3.26 投,泡池子。- 滴滴:3.13 投,泡池子。- b 站:笔试做了,泡池子。#java##面试#- 猿辅导:3.10 投,泡池子。简历直接挂的网易(雷火)、快手暑期、搜狐、小红书碎碎念暑期实习真的搞得人身心俱疲,测评、笔试一个接一个。能约上面试的基本还是 atmd 这几家大厂。虽然我拿到了美团 offer,但这个过程真的不想再经历第二次了 QAQ。之前没有实习和面试经验,一想到第二天有面试就紧张得不行,连续好几天都睡不好觉。在这里想跟大家说,不要焦虑,如果焦虑就尽情释放情绪,一定要保持勇敢💪。现在拿到 offer 的只是少数,去年我们实验室的师兄师姐基本都是 4 月末、5 月初才拿到 offer 的。人生的路还很长,在未知中前行或许是未来几十年的常态。只要不放弃,哪怕走得慢一点,你就已经很棒啦~#牛客创作赏金赛##面试##java##后端开发#
ALEX_BLX:讲真这个暑期真的感觉就美团正儿八经想招人
点赞 评论 收藏
分享
评论
2
17
分享

创作者周榜

更多
牛客网
牛客企业服务