输入一个URL后发生了什么

1. DNS解析

输入一个网址并按回车之后浏览器会根据输入的URL查找对应的IP,具体过程如下:
(1)查找浏览器缓存,浏览器会保存一段时间内访问过的一些网址的DNS信息。
(2)如果没有找到对应的IP,浏览器就调用操作系统缓存来继续查找这个网址的DNS信息。
(3)如果还是没找到对应的IP,就发送一个请求到路由器上,路由器在路由器缓存上查找记录的DNS信息。
(4)如果还是没有找到对应的IP,这个请求就会被发送到本地DNS服务器,本地DNS上缓存了一张域名与之IP地址对应的表格,有就直接返回域名对应的IP地址
(5)如果还是没有找到对应的IP, ISP的DNS服务器会将请求发向根域名服务器,然后到顶级域名DNS再到权威DNS,权威DNS是域名解析结果的原出处,它查询到对应的IP地址后告诉本地DNS。
(6)如果到了这里还是找不到域名的对应信息,那就域名错误了。
DNS根据域名查询IP地址的过程为:浏览器缓存 --> 操作系统缓存 --> 路由器缓存–>本地DNS缓存 --> 根DNS–>顶级DNS–>权威DNS。DNS

2. TCP连接

浏览器得到IP后,向服务器发送TCP连接。TCP三次握手目前HTTP协议大多都是1.1,在1.1的协议里,默认开启了keep-alive,这样建立的TCP连接,可以在多次请求中复用,不需要重新连接。

3.浏览器发送HTTP请求

浏览器和服务器建立连接以后,浏览器就给这个IP地址的服务器发送一个http请求,方式为get,,就是去服务器获取一些资源,对于访问页面来说,要获取的页资源往往是一个页面。其本质是在建立起的TCP连接中,按照HTTP协议标准发送一个索要网页的请求。
发送完请求接下来就是等待回应了。

4.服务器处理请求

服务器收到浏览器的请求以后,会解析这个请求(读请求头),然后生成一个响应头和具体响应内容。接着服务器会传回来一个响应头和一个响应,响应头告诉了浏览器一些必要的信息,例如重要的Status Code,2开头如200表示一切正常,3开头表示重定向,4开头是客户端错误,如404表示请求的资源不存在,5开头表示服务器端错误。响应就是浏览器请求的页面内容。

5.浏览器解析渲染页面

6.关闭TCP连接

当数据完成请求到返回的过程之后,根据Connection的Keep-Alive属性可以选择是否断开TCP连接,HTTP/1.1一般支持同一个TCP多个请求,而不是1.0版本下的完成一次请求就发生断开。TCP四次挥手

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值