day7(http协议) | 青训营笔记

29 阅读3分钟

不得不了解的http协议

浏览器背后的故事

当咱们在浏览器输入一个域名后,背后究竟发生了什么?html

第一步:当咱们输入域名后,在 DNS 服务器进行域名查询。前端

第二步:获得对应的 ip 地址。linux

第三步:浏览器根据 ip 向 web 服务器进行通讯发送请求,而通讯的协议就是 HTTP。webpack

第四步:web 服务器回传页面内容。web

第五步:浏览器收到回传信息的报文数据,进行渲染出咱们看得懂的页面。算法

注:

http是基于tcp的一种上层实现

1: 底层一定是二进制的, 网线和光缆都只能传输脉冲二进制啊

2:按照官方资料,http传输的是超级文本(所有WWW文件/网络资源在这里应该都是属于超级文本了),而这些文件本身就是二进制,一个img图片、一个Js文件、一个mp3文件都是二进制形式存在的啊,只不过通过编辑器看到的“文本”是把这个二进制解释成高级“文本”来展现罢了,就算用记事本打开一张图片,依然可以看到一堆文本啊,这不过图片的二进制和记事本(编辑器)的解释器不匹配,所以看起来是乱码;但是这些都是抽象出来的,并不是说我们在浏览器看到的res就是http收到的数据,只能说这是经过浏览器处理解析后的可视化数据,本质上通过http传输的,或者说通过tcp,或者说通过光缆/无线电波传输的信息都是二进制的形式,具体在哪一层如何界定,这个真不容易量化和界定。

所以:此文本非彼“文本”,超文本是啥,就是二进制文件在http协议中的存在形式,或者叫编码更合适。

TCP/IP 协议族

TCP/IP 协议实际上是一系列与互联网相关联的协议集合起来的总称。

TCP/IP 协议族是由一个四层协议组成的系统,这四层分别为:应用层传输层网络层数据链路层

img

应用层

应用层通常是咱们编写的应用程序,决定了向用户提供的应用服务。应用层能够经过系统调用与传输层进行通讯。如:FTPDNSHTTP等。

传输层

传输层经过系统调用向应用层提供处于网络链接中的两台计算机之间的数据传输功能。

在传输层有两个性质不一样的协议:TCPUDP

网络层

网络层用来处理在网络上流动的数据包,数据包是网络传输的最小数据单位。该层规定了经过怎样的路径(传输路线)到达对方的计算机,并把数据包传输给对方。

链路层

链路层用来处理链接网络的硬件部分,包括控制操做系统、硬件设备驱动、NIC(Network Interface Card,网络适配器)以及光纤等物理可见部分。硬件上的范畴均在链路层的做用范围以内。