导读
继《[前端之旅] - 01 开端 (持续更新各种资料)》之后,趁着春节,看了
网络知识
的相关视频内容。
下面记录下个人总结。
网络协议
七层协议和四层协议
计算机网络形成初期,一群大佬为网络指定协议,花了很长时间,定了一套协议,也就是注明的OSI七层协议模型。
该模型分为:应用层(Application)、表示层(Presentation)、会话层(Session)、传输层(Transport)、网络层(Network)、数据链路层(Data Link)、物理层(Physical)。
可是当时协议指定耗时太长,有一伙人,没等协议落地,自己搞了一套,就是下面图中的TCP/IP四层模型
,而且也是现在互联网的主要实现方式。
下面是
TCP/IP四层模型
的数据流示意图
,从图中可以总结两点:
- 应用层(我们最关心的
HTTP
)是通过TCP封装后传输的。- 四层结构,下层都会在上层协议的基础上,增加首部信息(且不修改上层协议内容)
HTTP
技术胖推荐的《HTTP协议详解 https://www.bilibili.com/video/BV1js411g7Fw?p=1》,的确干货十足,但是不少是讲PHP的,所以,个人觉得对于初学者,视频中关于PHP的内容可以直接跳过,不必对有些知识太过于较劲了。
HTTP交互式请求-telnet.exe
视频中使用
telnet.exe
进行HTTP交互式请求,这里以www.l0l.fun
进行分析。
-
连接HTTP服务器
telnet l0l.fun 80
-
连接HTTP服务器后,拷贝下面命令到CMD界面中(
包含空行!!!
)。
GET / HTTP/1.1
HOST: www.l0l.fun
下面是telnet返回的结果:
HTTP交互式请求-tcp在线测试
这里给两个网址,测试了,显示结果不太友好,但是也是可以看到返回的部分请求内容的。也可以看出,HTTP其实就是基于TCP
的一种超文本协议
。
HTTP请求/响应
视频的评论中,有人将 HTTP 基础的部分,做了一个思维导图,共享一下:https://www.processon.com/view/link/5c97952de4b0ab74ece439cd
0x06-http缓存详解
其实就是对于某些请求(如图片),服务器会在响应头中添加一些标记(
ETag
和Last-Modified
等),再次执行该请求的时候,浏览器
会将这些标记添加到请求头
中,服务器根据这些信息,判断资源未过期,直接返回304
,不再返回资源。下面是视频中的笔记:
DNS
请求总共如下图中的6个步骤。具体可以看视频内容《超直观的DNS科普https://www.bilibili.com/video/BV1F54y1R7BC?p=2》
参考资料
- gitee地址: https://gitee.com/jishupang/web_atlas
- HTTP协议详解 https://www.bilibili.com/video/BV1js411g7Fw?p=1
- Telnet协议是什么? http://c.biancheng.net/view/6461.html
- 在线tcp测试 https://xxf.cool/tools/tcpTool
- 在线tcp测试 http://tool.6zkx.com/Tools/Tcpip/ClientTest
- qq群:夜猫逐梦技术交流裙/953949723