点击一个网页链接,然后发生了什么?
2016-08-03 12:54
393 查看
首先我们认识下网页链接的组成:http://www.baidu.com/
1. 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. 如果上述步骤还未成功,则该数据包就不能被传送。
1. 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. 如果上述步骤还未成功,则该数据包就不能被传送。
相关文章推荐
- 用户鼠标点击屏幕一个链接后发生了什么
- 当你输入一个网址/点击一个链接,发生了什么?(以www.baidu.com为例)
- 当我们游览网页的时候, 在输入链接点击回车之后到看到新网页这中间究竟发生了什么?
- 当你输入一个网址/点击一个链接,发生了什么?(以www.baidu.com为例)
- 当你输入一个网址/点击一个链接,发生了什么?(以www.baidu.com为例)
- Flex中如何给一个按钮添加链接,点击链接打开一个网页呢?
- 从点击Button到弹出一个MessageBox, 背后发生了什么
- HTML基础 a标签实现点击超链接后新建一个网页跳转到指定链接
- 网站某一目录下mip页面点击全部跳转到同一个链接,可能是什么原因导致的? – SEO每天一贴
- QUIZ:一个网页上面有多少个SilverLight4应用时会发生莫名其妙的崩溃?和什么有关?
- 当你点击链接打开网页的那一瞬间 究竟发生了多少事?(转)
- 点击某些网页内链接时,提示“至少有一个字段错误”
- 访问一个网页过程中发生了什么
- 从点击Button到弹出一个MessageBox, 背后发生了什么
- 从浏览器输入一个地址到渲染出网页这个过程发生了什么???
- Flex中如何给一个按钮添加链接,点击链接打开一个网页呢? - FLEX学习笔记
- 桌面上点击一个图标,链接到网页
- Flex中如何给一个按钮添加链接,点击链接打开一个网页呢?
- 键入一个网页后了发生什么