浏览器中输入URL后发生了什么

解析URL

  • 解析应用层协议类型,比如http、https、ftp等
  • 解析域主机,比如http默认是www
  • 解析域名,比如baidu.com
  • 解析主机端口,比如http默认是80端口,https默认是443
  • 解析资源路径,就是第一个/后面的东西
  • 解析资源名,就是最后一个/后面的东西

查询DNS

浏览器不能直接通过域名找到对应的服务器,只能通过ip地址,所以要根据域名去查询ip地址,一般会通过浏览器缓存、操作系统缓存、路由缓存等查询

TCP/IP的连接与断开

共有四层,再发生方那里,每一层都会加上一个头部再发到下一层,再接收方那里,会按顺序从外向内把头部拆除掉

  • 首先是应用层,使用到了http协议,在服务器得到ip地址之后,会生成一个http报文,结构如下图
    在这里插入图片描述
    起始行: 包含了使用的请求方法、URL、协议版本
    头部: 是key:value的格式,包含了报文的信息
    请求体: get请求没有请求体,参数是放在URL上的,post请求有请求体,参数既可以放在URL上,也可以放在请求体中,一般用form表单存放参数
  • 在发送报文之前,会在传输层先建立TCP连接,在三次握手成功建立连接之后,会生成TCP报文,存储 TCP 协议必须的额外信息,例如发送方的端口号、接收方的端口号、包序号、标志位等等,这样才能正确地进行传输
  • 在网络层中,会将数据端打包,包含了源和目标的ip地址,为了寻找传输线路,会根据ip地址查询mac地址,如果目标地址和当前地址在同一网络下,直接用本地的mac地址发送,否则使用ARP协议查询目标的mac地址再发送
  • 在数据链路层中,会以”帧“为单位把数据分为多个数据包,每帧分为两个部分,一个是标头,包含了数据包的发送者、接受者、数据类型,另一个是数据,包含了具体的数据包内容
  • 至此就可以向接收方发送这四层的封装起来的报文了,在接收方那边是一层一层从外向内拆解才找到接收方的
  • 最后接收方收到http报文,通过html、css等渲染出页面
  • 可能在最后还会四次挥手断开TCP连接
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值