博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
url到一个网页经历的什么
阅读量:6594 次
发布时间:2019-06-24

本文共 544 字,大约阅读时间需要 1 分钟。

从输入URL按下回车键的开始。此时浏览器就是所在TCP/IP的四层模型中的应用层。此时会把请求往下一个模型传输层传递。

  • 传输层

传输层又可以理解为TCP负责的这层,他会分析你发送的协议的类型属于http、https。并且负责查询DNS的操作。这里DNS先去访问缓存中是否已经查询过了这个域名,如果查询过并且有的话把ip返回进入下一层,如果没有这继续向下查询有则返回IP没有则返回应用层报错。

同时这里如果使用的是https协议的话,会在这一层底部添加ssl放在传输层和网络层中间,可以粗略的理解为这是一个加密的东西。
同时tcp/ip的经典的三次握手也是出现在这里。
1、发送端发送一个带SYN=1的标志的数据包给对方。(这里的1代表开始连接)
2、接收端接受后返回一个SYN/ACK的数据包表示信息已经传达。
3、发送方发送标有ACK的数据包,表示握手结束。
https的话就更复杂一点了整个的过程需要9步,这个在我之前写的Https详解里面有提到。

  • 网络层

已经查询到了IP这时,会继续往下传递到数据链路层之前的每一步都会有加包的操作,而和服务端不同的地方是服务端做的是拆包的工作。将数据分层块状传递可以提高传输效率,尽可能的不浪费资源。

如果有什么不对的地方希望大家能够指出。谢谢!

转载地址:http://zrcio.baihongyu.com/

你可能感兴趣的文章
用ASP.NET Core 2.1 建立规范的 REST API -- 翻页/排序/过滤等
查看>>
哈默尔的核心竞争力--《可以量化的管理学》
查看>>
Unity中关于作用力方式ForceMode的功能注解
查看>>
view生命周期的一个找父类的控件的方法
查看>>
物理读之LRU(最近最少被使用)的深入解析
查看>>
写给将要毕业的学弟学妹们的感言
查看>>
mybatis-ehcache 用法配置备忘
查看>>
Python2.7升级到3.0 HTMLTestrunner报错解决方法
查看>>
Redis介绍以及安装(Linux)
查看>>
去掉VS2012中的红色波浪下划线
查看>>
建立Git版本库管理框架例子
查看>>
nginx防止部分DDOS攻击
查看>>
编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字......
查看>>
number_format() 函数定义和用法
查看>>
Java8中聚合操作collect、reduce方法详解
查看>>
查看记录
查看>>
mybatis报ORA-00911: 无效字符
查看>>
Swift UIView动画animateWithDuration
查看>>
Maven 集成Tomcat插件
查看>>
css中的line-height问题
查看>>