键入网址发生什么--基础网络知识

浏览器解析URL生成请求信息,发送给web服务器

一、浏览器解析URL

& 浏览器解析URL作用:确定了 Web 服务器和文件名

URL组成:http: + // + web服务器域名 + /目录名/ + / 目录名/ ....文件名

当没有具体文件路径名时,就代表访问根目录下事先设置的默认文件,也就是 /index.html 或者 /default.html 这些文件。

二、生成HTTP请求信息

三、查询真实地址--DNS

 操作系统将http消息发给web服务器,是要知道web服务器IP地址!由域名解析出IP地址

浏览器自身查看缓存有没有域名对应的IP,没有问操作系统,再没有查看hosts文件,再没有就开始问域名服务器。

本地DNS问根DNS,根DNS直接说顶级DNS,顶级DNS说权威DNS,得到结果后本地DNS返回IP

协议栈:

 浏览器通过调用socket库来委托协议栈工作。

四、TCP--可靠传输

TCP报文头部格式:

端口号:确定数据从哪个应用发到那个应用;

序号:解决包乱序;

确认号:确认对方收到。解决丢包问题;

状态位:ACK回复、SYN连接、RST重新连接、FIN结束连接;

        TCP面向连接,带状态位包发送,会引起双方状态变更;

窗口大小:TCP要做流量控制,不可太快太慢;

TCP连接的建立--三次握手

三次握手目的:保证双方都有发送和接受的能力。

在 Linux 可以通过 netstat -napt 命令查看TCP链接状态。

TCP分割

若HTTP请求信息超过MSS,TCP就将HTTP的数据拆分。

  • MTU:一个网络包的最大长度,以太网中一般为 1500 字节。
  • MSS:除去 IP 和 TCP 头部之后,一个网络包所能容纳的 TCP 数据的最大长度。

五、IP--远程定位

IP报文头部格式:

HTTP 是经过 TCP 传输的,所以在 IP 包头的协议号,要填写为 06(十六进制),表示协议为 TCP。

六、MAC--两点传输

一般在 TCP/IP 通信里,MAC 包头的协议类型只使用:

  • 0800 : IP 协议
  • 0806 : ARP 协议

网络包报文:

七、网卡--出口

将内存中二进制数字信息转为电信号;

网卡获取网络包:开头加上报头和起始帧分界符,在末尾加上用于检测错误的帧校验序列。

  • 起始帧分界符是一个用来表示包起始位置的标记
  • 末尾的 FCS(帧校验序列)用来检查包传输过程是否有损坏

最后网卡会将包转为电信号,通过网线发送出去。

接下来就是交换机送别、路由器出境。

八、互相扒皮--服务器与客户端

@发送:服务器检查MAC头部,符合再检查IP头,符合再检查TCP序列号,符合返回ACK不是就丢弃,符合就返回给http进程,将请求信息封装在http响应报文,http响应报文再穿上TCP、IP、MAC头部 返回出去。

@接收:客户端收到,再逐层扒,将服务器返回信息交给对应的http进程。

@结束:最后,客户端要离开了,向服务器发起了 TCP 四次挥手,至此双方的连接就断开了。

协议概念对比补充:面试:HTTP协议与TCP协议的区别和联系_bug 的博客-CSDN博客

TCP是底层通讯协议,定义的是数据传输和连接方式的规范 ,HTTP是应用层协议,定义的是传输数据的内容的规范 HTTP协议中的数据是利用TCP协议传输的,所以支持HTTP也就一定支持TCP HTTP支持的是www服务 而TCP/IP是协议 它是Internet国际互联网络的基础。 TCP/IP是网络中使用的基本的通信协议。 TCP/IP实际上是一组协议,它包括上百个各种功能的协议,如:远程登录、文件传输和电子邮件等, 而TCP协议和IP协议是保证数据完整传输的两个基本的重要协议。 通常说TCP/IP是Internet协议族, 而不单单是TCP和IP。 http协议是应用层协议,主要是解决如何包装数据。 而tcp协议是传输层协议,主要解决数据如何在网络中传输。

猜你喜欢

转载自blog.csdn.net/m0_61843855/article/details/131740427
今日推荐