【Web】在浏览器输入地址之后,会发生什么?

0 篇文章 0 订阅

以浏览器输入www.baidu.com为例

1.域名解析/域名->IP地址
   - 首先是去查找浏览器缓存,浏览器一般会保存你之前访问网站的DNS信息,保存的时间根据浏览器不同有所差异。
   - 若浏览器缓存中没有,浏览器会做系统调用(gethostbyname)访问系统缓存中保存的DNS信息。Windows下你修改的hosts文件中的DNS在这时候就会起作用。
   - 若系统缓存中没有,查询请求会发送至路由器,一般路由器中也有DNS缓存。
   - 若还是没有,会去访问你在TCP/IPv4中填的DNS服务器地址(例如223.5.5.5 223.6.6.6)。若你没有手动修改DNS服务器地址,这个DNS请求会发送到ISP(互联网服务提供商)DNS服务器继续查询。这里所说的DNS服务器被叫为localDNS服务器。
   -若ISP DNS服务器缓存中还是没有,则会递归查询DNS服务器,根域名服务器->顶级域名服务器.com->baidu域名服务器
  若此时还未获取到IP地址则不存在。
 
2.建立TCP连接
  在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该连接是通过TCP来完成的,端口号一般为80。三次握手在此不再赘述(此内还涉及ARP协议)。
  
3. 浏览器向web服务器发送http请求
  建立连接后,浏览器向web服务器发送http请求。
 GET 这个请求定义了要读取的URL: “http://www.baidu.com/”。 浏览器自身定义 (User-Agent 头), 和它希望接受什么类型的相应 (Accept and Accept-Encoding 头). Connection头要求服务器为了后边的请求不要关闭TCP连接。
  
4.web服务器响应
  服务器接收到获取请求,然后处理并返回一个响应。
  若成功为HTTP/1.1 200 OK
  若不成功,则根据返回响应状态码进行相应的操作。
  
  响应代码由三位数组成:
  1XX:表示请求已收到,继续处理。范围100-101
  2XX:表成功,服务器成功处理,范围为200-206
  3XX:重定向,有些资源被移动了,web会告诉客户端新地址,此时浏览器会重新对新资源发起请求,范围为300-305
  4XX:客户端错误状态码
  5XX:web服务器自己内部错误

  常见状态码:
  200:请求成功
  302:重定向
  404:请求资源不存在
  400:客户端请求有语法错误
  401:请求未经授权
  403:服务器收到请求,但拒绝提供服务
  500:服务器内部错误
  503:服务器当前不能处理客户端请求,过一段时间或许恢复正常。
  
5.web服务器返回HTML响应
  若web服务器响应成功,会将网页内容附在Response的实体头当中。报头中Content-type为“text/html”报头让浏览器将该响应内容以HTML形式呈现。
 
6.浏览器显示HTML
  浏览器并不需要等HTML全部获取完就会在页面中显示。

7.获取其他信息
  浏览器会发送一个请求获取网络图片、css层叠样式表、js文件等内容


分享两个链接
what happens when you input a url?

从输入 URL 到页面加载完成的过程中都发生了什么事情

### 回答1: 好的,我了解了。关于您的问题,整个过程可以分为以下几个步骤: 1. 输入URL:当您在浏览器地址栏中输入URL时,浏览器将该URL发送到域名系统(DNS),通过域名系统将URL转化为IP地址。 2. 发送HTTP请求:浏览器根据URL发起HTTP请求,请求访问Web服务器的特定资源。 3. 服务器响应:当Web服务器接收到请求时,它将处理请求并返回所请求的资源。 4. 浏览器渲染:浏览器收到服务器响应后,它将解析HTML源代码,并根据CSS样式表和JavaScript代码来渲染页面。 5. 页面展示:最终,浏览器将HTML、CSS和JavaScript代码解析完毕后,它在屏幕上展示出页面内容。 以上就是从输入URL到页面展示的整个过程,希望能够帮到您。 ### 回答2: 当我们在浏览器地址栏中输入URL时,整个过程可以分为以下几个步骤: 1. DNS解析:浏览器首先根据URL中的域名(例如www.example.com)进行DNS解析,将域名解析为对应的IP地址。这一步骤是为了找到存放网页的服务器。 2. 建立TCP连接:浏览器通过IP地址服务器建立TCP连接。TCP协议提供可靠的连接,确保数据的完整性。 3. 发起HTTP请求:一旦建立了TCP连接,浏览器服务器发起HTTP请求,请求包括请求方法、请求头、请求体等信息。请求方法可以是GET、POST等,服务器根据请求的不同做出相应的响应。 4. 服务器处理请求并响应:服务器接收到浏览器的请求后,根据请求的内容进行相应的处理。处理包括读取数据库、执行后端代码等操作。之后服务器生成响应对象,包含响应状态码、响应头、响应体等信息。 5. 接收服务器响应:浏览器接收到服务器的响应后,根据响应头中的Content-Type确定响应的数据类型。如为HTML类型,则浏览器将响应的HTML代码解析成DOM树。 6. 解析页面并渲染:浏览器根据DOM树构建渲染树,并依据CSS样式对各元素进行布局和样式计算,最终生成页面的渲染结果。同时,浏览器执行页面中的JavaScript代码。 7. 页面展示:最后,浏览器将渲染好的页面内容显示在用户的视窗中,用户可以看到页面的展示效果。 总结起来,从输入URL到页面展示,经历了DNS解析、建立TCP连接、发起HTTP请求、服务器处理请求并响应、接收服务器响应、解析页面并渲染等多个步骤。最终,浏览器将渲染好的页面内容显示给用户。 ### 回答3: 从输入URL到页面展示,大致经历如下步骤: 1. 域名解析:当我们在浏览器输入URL后,首先进行域名解析。浏览器向DNS服务器发送域名请求,获取该域名对应的IP地址。 2. 建立连接:浏览器通过获取到的IP地址Web服务器建立TCP连接。这个过程使用的是三次握手协议,确保连接的可靠性。 3. 发送请求:建立连接后,浏览器发送HTTP请求给Web服务器,请求的内容包括请求的类型(GET/POST等)、地址、头部信息、可能还包括cookie等相关信息。 4. 服务器处理请求:Web服务器收到请求后,根据请求内容进行处理。处理过程可能包括调取数据库、运行后台程序等动作。 5. 服务器响应:Web服务器根据请求的内容,返回一个HTTP响应给浏览器。响应的内容包括状态码、响应头部、实际的网页内容等。 6. 下载页面资源:浏览器接收到服务器返回的响应后,开始下载网页的资源,如HTML、CSS、JavaScript、图片等。浏览器根据响应头部中的Content-Type确定如何解析资源。 7. 页面渲染:当所有的资源下载完成后,浏览器根据HTML结构、CSS样式,解析并渲染出网页。浏览器从上到下解析HTML文档,解析过程包括构建DOM树、计算CSS样式、布局页面等。 8. JavaScript执行:在渲染过程中,浏览器遇到JavaScript代码。浏览器逐行解析执行JavaScript代码,并根据代码修改DOM树和样式,可能还触发网络请求等。 9. 页面展示:当页面渲染和JavaScript执行完成后,页面便可以完整地展示给用户了。用户可以看到页面内容,与页面进行交互。 以上仅是一个大致的过程,实际上还有很多细节和额外的步骤,比如缓存机制、重定向、Cookie处理等等。不同的浏览器服务器也可能有些许差异。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值