点击一个网页链接,然后发生了什么?

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 点击一个网页链接,然后发生了什么?

基础知识补课来了!!!


首先我们认识下网页链接的组成:

例子:http://www.baidu.com/

1. http是一个应用层的协议,详细的这里不介绍。

http是一个很有意思的东东,推荐大家可以看图解系列的关于http的书,很清晰。


2. DNS解析:将www.baidu.com解析成目的IP地址,如果URL里不包含端口号,则会使用该协议的默认端口号。

在本地机器上配置网络时都会填写DNS,这样本机就会把URL发送给这个配置的DNS服务器;如果能够找到相应的URL则返回其IP,否则该DNS将继续将该解析请求发送给上级DNS,整个DNS可以看成一个树状结果,该请求将一直发送到根直到得到结果。


3. 建立socket连接

Socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议。


4. 请求连接成功建立后,开始向web服务器发送请求,这个请求一般是Get或Post命令(Post用于Form参数的传递))


5. 应答web服务器收到这个请求,进行处理。如果找到文件,web服务器将该内容传送给响应的Web浏览器。


6. 关闭连接



数据包在TCP/IP模型中的过程:


1. 应用层: 根据当前的需求和动作,结合应用层的协议,确定发送的数据内容,会把这些数据放到一个缓冲区内,然后形成了应用层的报文data


2. 传输层: 这些数据通过传输层发送,比如tcp协议。在该层被打上传输层的报头,主要包含端口号,以及tcp的各种制信息。

tcp是一种端到端的协议,利用这些协议,比如tcp首部的确认序号,根据这些数字,发送的一方不断的进行发送等待确认,发送一个数据段后,会开启一个计数器,只有收到确认后才会发送下一个,如果超过计数时间仍未收到确认则重发,在接受端收到错误数据,则将其丢弃,这将导致发送端超时重发。


3. 网络层:待发送的数据段送到网络层,在网络层被打包,这样封装上了网络层的报头,报头内容含有源及目的地IP地址,该层数据发送单元被称为packet。查找过程如下:


查找过程:


1. 根据目的地址,得到目的网络号,如果处在同一个内网,则可以直接发送


2. 如果不是,则查询路由器,找到一个路由


3. 如果找不到明确的路由,此时路由表中还会有默认网关,也可称为缺省网关,IP用缺省的网关地址将一个数据传送到下一个指定的路由器,所以网关也可能是路由器,也可能只是内网向特定路由器传输数据的网关。


4.  路由器接收到数据后,它再次为远程主机或网络查询路由,若还未找到路由,该数据包将发送到该路由器的缺省网关地址,而数据包中包含一个最大路由跳数。如果超过这个条数,则会丢弃数据包,这样可以防止无限传递。工作在网络层,传输层的数据对它是透明的


5. 如果上述步骤还未成功,则该数据包就不能被传送。


相关文章
|
5月前
|
Web App开发 定位技术
Chrome中实现使用迅雷一次性选中并下载网页内全部链接的方法
Chrome中实现使用迅雷一次性选中并下载网页内全部链接的方法
151 1
|
Web App开发
如何设置谷歌浏览器在新窗口中打开链接?如何设置谷歌浏览器在新标签页中打开链接?
一、快捷键方式:  1、左键单击 ==》 在当前窗口中打开目标网页。  2、Shift + 左键单击 ==》 在新窗口中打开目标网页。  3、Ctrl + 左键单击 ==》 在新标签页中打开目标网页。  4、鼠标中键点击书签即打开新的标签页,在新的标签页中显示指定的网页。
47294 0
|
11月前
如何加速打开Axure分享的链接
如何加速打开Axure分享的链接
142 0
|
测试技术 API
软件测试面试题:在一个页面上,点击一个链接之后不会在当前页面上打开此链接而是新开一个窗口打开此页面。
软件测试面试题:在一个页面上,点击一个链接之后不会在当前页面上打开此链接而是新开一个窗口打开此页面。
132 0
|
移动开发 前端开发 HTML5
web前端学习(四)——HTML5的超链接标签设置(页面间链接、锚链接以及邮件链接)
web前端学习(四)——HTML5的超链接标签设置(页面间链接、锚链接以及邮件链接)
web前端学习(四)——HTML5的超链接标签设置(页面间链接、锚链接以及邮件链接)
|
搜索推荐
Google 新标签页打开链接
Google 新标签页打开链接
727 0
Google 新标签页打开链接
禁止拖拽超链接自动在新窗口打开链接
禁止拖拽超链接自动在新窗口打开链接
134 0
|
Android开发
如何使用点击超链接的方式打开Android手机上的应用
在Android应用的AndroidManifest.xml里加入如下的配置片段:
在新窗口打开WordPress文章中的所有链接
在新窗口打开WordPress文章中的链接,有助于提高访客体验,为什么这么说呢?假设你在看文章的过程中,想浏览文章中提到的另一篇文章,但是现在这篇文章你还没有看完,没想到一点击链接,浏览器就切换到了新文章,要看刚才的文章,还得后退,是不是有点烦? 虽然有时候点击鼠标中键(滚轮)可以使链接在新窗口打开,或者某些浏览器支持拖动链接新窗口打开,但是这些并不适用于所有的访客。
1270 0
WordPress文章在新窗口打开所有链接
在新窗口打开WordPress文章中的链接,有助于提高访客体验,为什么这么说呢?假设你在看文章的过程中,想浏览文章中提到的另一篇文章,但是现在这篇文章你还没有看完,没想到一点击链接,浏览器就切换到了新文章,要看刚才的文章,还得后退,是不是有点烦?
1283 0