Skip to content

计算机网络知识总结,参考小林 coding 图解网络系列。

开篇碎碎念 ​

整理自 Go-Interview 仓库的 计算机网络 模块,分上下两篇覆盖 OSI/TCP/IP 各层协议、HTTP/HTTPS、DNS、CDN 等高频考点,附带小林 coding 的总结。

适合人群:需要复习计算机网络协议栈、准备后端面试的同学。

1、HTTP是什么?详细解释一下。 ​

HTTP是超文本传输协议,即HyperText Transfer Protocol。

可以拆分成三个部分:超文本、传输、协议。HTTP是一个计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范。

2、http常见字段有哪些? ​

Host字段:客户端发送请求时,此字段用来指定服务器的域名。

Content-Length字段:服务器返回数据时,会有Content-Length字段,表明本次回应的数据长度。

Connect字段:最常用于客户端要求服务器使用TCP持久连接,以便其他请求服用。比如http/1.1版本默认时长连接,需要指定Connection首部字段的值为Keep-Alive.即Connection:keep-alive.

Content-Type字段:用于服务器回应时,告诉客户端,本次数据是什么格式。比如:Content-Type:text/html;charset=utf-8,说明发送的是网页,编码格式是utf-8.

Content-Encoding字段:表示服务器返回的数据使用的压缩方法。客户端在请求时,用Accept-Encoding字段说明可以接受哪些压缩方法。

3、说一下GET和POST的区别? ​

Get方法是请求从服务器获取资源,这个资源可以是静态的文本、页面、图片视频等。

Post方法是相反操作,它是向URL指定的资源提交数据,数据方法在报文的body里。

本质区别:

Get方法是安全且幂等。因为它是只读操作,无论操作多少次,服务器上的数据都是安全的,且每次的结果都是相同的。

Post因为是新增或提交数据的操作,会修改服务器上的资源,所以是不安全的,且多次提交数据就会创建多个资源,所以不是幂等的。

拓展知识:

在 HTTP 协议⾥,所谓的「安全」是指请求⽅法不会「破坏」服务器上的资源。

所谓的「幂等」,意思是多次执⾏相同的操作,结果都是「相同」的。

基于 MIT 许可发布