打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
图解从URL到网页通信原理

内容导读

简单说,这个通信的过程是基于TCP/IP通信协议族规范的,完成从客户端到服务器端等一系列运作流程。1、TCP/IP协议族计算机与网络设备要相互通信,双方就必须基于相同的方法。这里就说到TCP/IP重要的层次化划分,按层次可以分为4层:应用层、传输层、网络层和数据链路层。如HTTP,FTP,DNS等协议;(2) 传输层:对应用层提供网络连接时的两台计算机的数据传输。传输层有两个性质不同的协议: TCP(Transmission Control Protocol,传输控制协议)和 UDP(User Data Protocol,用户数据报协议);(3) 网络层: 用来处理网络中流动的数据包,该层规定了通过怎样的传输路径将数据包传递到对方计算机。而计算机相对更容易处理一组数字,这时DNS域名解析服务应运而生。

前言

我们使用浏览器发送请求后页面是如何呈现在我们面前的呢?
在实际的学习web开发的过程中,网站开发,网络爬虫的程序设计都是需要这方面专业知识。接下来我们图解下这个URL到呈现页面的过程。

一、从URL请求响应过程概括

URL请求过程.jpg

我们在浏览器中输入一个 URL,回车之后便会在浏览器中观察到页面内容。实际上这个过程是浏览器向网站所在的服务器发送了一个 Request(请求),网站服务器接收到这个 Request 之后进行处理和解析,然后返回对应的一个Response(响应)给浏览器,Response里面就包含了页面的源代码等内容,浏览器再对其进行解析便将网页呈现了出来。
这个过程是如何规范并实现的呢?简单说,这个通信的过程是基于TCP/IP通信协议族规范的,完成从客户端到服务器端等一系列运作流程。

二、TCP/IP 通信协议大家族的整体介绍

前面说过网络的通信是基于TCP/IP协议族规范的。那TCP/IP协议族是什么呢?如何规范网络通信的过程呢?
1、TCP/IP协议族
计算机与网络设备要相互通信,双方就必须基于相同的方法。比如,如何探测到通信目标、由哪一边先发起通信、使用哪种语言进行通信、怎样结束通信等规则都需要事先确定。不同的硬件、操作系统之间的通信,所有的这一切都需要一种规则,而我们就把这种规则称为协议(protocol)。通常我们说的TCP/IP协议族是互联网相关的各类协议族的总称。

TCP/IP族.png

TCP/IP协议族由那么多的协议组成,那功能上如何划分的呢?这里就说到TCP/IP重要的层次化划分,按层次可以分为4层:应用层、传输层、网络层和数据链路层。层次化的好处在于每个层次内部的设计可以自由改动,并通过各层的接口关联起来,而如果只有一个协议统筹就需要对所有涉及到的部分都重新设计。

2、TCP/IP各层的作用
(1) 应用层:决定了向用户提供应用服务时候的通信活动。如HTTP,FTP,DNS等协议;
(2) 传输层:对应用层提供网络连接时的两台计算机的数据传输。传输层有两个性质不同的协议: TCP(Transmission Control Protocol,传输控制协议)和 UDP(User Data Protocol,用户数据报协议);
(3) 网络层: 用来处理网络中流动的数据包,该层规定了通过怎样的传输路径将数据包传递到对方计算机。如IP协议;
(4) 数据链路层:用来处理网络连接中的硬件部分。 如FDDI协议;

三、TCP/IP是如何规范通信过程

通信过程.png

第一步、发送URL请求

URL格式介绍.png

Url由以下元素组成:
(1) 传送协议:http:或者https:等
(2) 层级URL标记符号,为“//”固定不变
(3) 访问资源需要的凭证信息(可省略)
(4) 服务器地址。通常为域名,有时为IP地址(实际通信中需要通过IP地址访问,域名通过DNS服务器解析出IP地址)
(5) 端口号。以数字方式表示,若为HTTP的默认值“:80”可省略
(6) 路径。以“/”字符区别路径中的每一个目录名称
(7) 查询。GET模式的窗体参数,以“?”字符为起点,每个参数以“&”隔开,再以“=”分开参数名称与数据,通常以UTF8的URL编码,避开字符冲突的问题
(8) 片段。以“#”字符为起点,使用片段标识符通常可标记出已获取资源中的子资源

第二步、DNS对请求的URL域名解析

DNS(Domain Name System)服务是和 HTTP 协议一样位于应用层的协议,它提供域名到 IP 地址之间的解析服务。计算机既可以被赋予 IP 地址,也可以被赋予主机名和域名,用户通常使用主机名或域名来访问对方的计算机,而不是直接通过 IP 地址访问。而计算机相对更容易处理一组数字,这时DNS域名解析服务应运而生。DNS 协议提供通过域名查找 IP 地址,或逆向从 IP 地址反查域名的服务。

DNS协议.png

第三步、生成HTTP请求报文

HTTP协议:按层次分, HTTP(HyperText Transfer Protocol,超文本传输协议)位于应用层,决定从客户端到服务器端等一系列通信内容及方式。

HTTP协议.png

第四步、TCP连接建立数据通信

TCP协议:按层次分, TCP(Transmission Control Protocol,传输控制协议) 位于传输层。TCP 协议为了更容易传送大数据会对数据分割,并能够确认数据最终是否送达到对方。

TCP协议.png

第五步、数据传输到IP地址

按层次分, IP(Internet Protocol)网际协议位于网络层。 IP协议的作用在于实现数据包传递到对方计算机IP地址,而IP间的通信依赖于MAC 地址(网卡所属的固定地址),需要再通过ARP 协议根据通信方的 IP 地址反查出对应的MAC 地址。

IP协议.png

第六步、服务器接收并解析请求报文后回传响应报文

服务器接收及解析请求报文后回传响应报文.png


本公众号团队成员由饿了么、阿里、蚂蚁金服等同事组成,关注架构师之巅,可以了解最前沿的技术。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
HTTP协议报文、工作原理及Java中的HTTP通信技术详解
网络中IP数据包是如何进行远程传输定位的
后端通用教程(二)
经典面试题:在浏览器地址栏输入一个 URL 后回车,背后发生了什么
计算机网络知识汇总(超全)
图解HTTP常见知识点总结
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服