浏览器中网址访问过程解析

当我们在浏览器输入 www.baidu.com 时,浏览器就会加载出百度的主页,那么浏览器背后的处理是什么样的呢?
总体来说,大概流程是这样的!
1)当你输入URL时,浏览器的服务器会请求DNS,通过DNS来获取对应的IP。
2)通过IP来寻找对应的服务器,请求建立TCP连接。
3)浏览器发送HTTP请求包,服务器接收到后开始处理。
4)服务器收到请求后,调用自身服务开始返回HTTP请求包。
5)客户端接收到服务器的相应后开始运行,并在接收到全部内容后断开TCP连接。

1、DNS解析

当我们在浏览器中输入一个网址时,是不能直接连接的,需要用DNS地址解析将输入的URL网址转换为IP地址后才能连接。
具体过程分为:
1)在浏览器输入网址时,浏览器会先检查自己本地hosts文件有没有缓存,如果有,直接完成解析。
2)如果自身hosts文件没有缓存,则找LDNS(local DNS),本地DNS服务器如果有,直接完成解析。
3)如果hosts和本地DNS服务器都没有,则LDNS去外地的DNS服务器请求。

2、socket连接

当我们发起一个请求时,首先要建立起socket连接,socket是要通过IP和端口建立的,所以要进行DNS解析。

3、发送http请求

连接成功建立后,开始向web服务器发送请求,当浏览器向Web服务器发出请求时,它向服务器传递了一个数据块,也就是请求信息,通常有get和post。
HTTP请求信息由3部分组成:
1)请求方法URI协议/版本
2)请求头(Request Header)
3)请求正文

4、服务器响应

服务器接到请求后进行处理。从它的文档空间中搜索子目录mydir的文件index.html。如果找到该文件,Web服务器把该文件内容传送给相应的Web浏览器。Web服务器首先传送一些HTTP头信息,比较常见的有:
1) HTTP 1.0 200 OK
2) MIME_Version:1.0
3) content_type ;指示HTTP体信息的MIME类型。
4) content_length

5、断开连接

当应答结束后,浏览器与服务器必须断开,以保证其它浏览器能够与服务器建立连接。

原文地址:https://blog.51cto.com/14375911/2415993

时间: 2024-10-12 20:17:07

浏览器中网址访问过程解析的相关文章

浏览器中网址访问过程详解

(1)浏览器本身是一个客户端,当你输入URL的时候,首先浏览器会去请求DNS服务器,通过DNS获取相应的域名对应的IP (2)然后通过IP地址找到IP对应的服务器后,要求建立TCP连接 (3)浏览器发送完HTTP Request(请求)包后,服务器接收到请求包之后才开始处理请求包 (4)在服务器收到请求之后,服务器调用自身服务,返回HTTP Response(响应)包 (5)客户端收到来自服务器的响应后开始渲染这个Response包里的主体(body),等收到全部的内容随后断开与该服务器之间的T

浏览器和服务器互动过程解析

目前来说,网站页面主要分为静态页面和动态页面,纯静态页面组成的网站现在相对比较少见,大型网站一般使用的是动态网站建站技术,还有一部分网站是静态网页与动态网页共存,本文以Apache服务器.php语言为例,详解动态网站的访问过程,下面直接切入本文主题. (1)用户端访问服务器端的html文件 S1:通过本机配置好的DNS域名服务器地址寻找DNS服务器,将网站URL中的Web主机域名解析为Web服务器所在的Linux操作系统(Apache通常与Linux操作系统组合使用)中对应的IP地址. S2:通

Java中的访问权限解析

在Java中不同的对象和类拥有不同的访问权限,所以在java中对不同的类和对象进行权限的设置显得尤为重要. java中的权限主要分为四种,public,protect,private,和default在声明类和对象的时候如果没有注明权限则为默认的即(default).下面将对这四种权限仅向简单的解析,部分为网上博主的总结再加上个人总结 1.权限解析Java有四种访问权限, 其中三种有访问权限修饰符,分别为private,public和protected,还有一种不带任何修饰符.private:

浏览器中可以访问,但是git命令、go get命令使用时却无法连接

go get经常无法下载,而且git clone也是,比如 而我这边使用能够访问该网站,偶然看到一个博客,原来git也需要设置代理 https://blog.csdn.net/ethan0ly/article/details/80993888 设置代理为: git config --global http.proxy "10.28.124.234:1080" 取消代理: git config --global unset http.proxy 原文地址:https://www.cnbl

微信浏览器中关闭网页

在微信内置浏览器中被访问的网页,可使用该JavaScript代码关闭当前网页. 主要使用场景: 微信用户在公众号会话中点击外链到达公众号的网页,在用户完成操作后,公众号(网页方)可调用此接口关闭当前网页窗口,使用户返回会话. 接口调用代码(JavaScript) WeixinJSBridge.invoke('closeWindow',{},function(res){ //alert(res.err_msg); }); 返回说明 返回值 说明 err_msg 关闭成功返回"close_windo

java web mvc中,访问jsp页面

controller: @RequestMapping(value = "/pass/pointInfo.do", method = RequestMethod.GET) public String pointInfo(HttpServletRequest request) { return "pointinfo"; } 这边的用的GET方式,返回的string类型,这样可以在浏览器中直接访问. pointinfo是jsp文件,放在WEB-INF文件夹下. 接下来是

浏览器输入网址到浏览器渲染页面的过程

1) 在客户端浏览器中输入网址URL. 2) 发送到DNS(域名服务器)获得域名对应的WEB服务器的IP地址. 3) 客户端浏览器与WEB服务器建立TCP(传输控制协议)连接. 4) 客户端浏览器向对应IP地址的WEB服务器发送相应的HTTP或HTTPS请求. 5) WEB服务器响应请求,返回指定的URL数据或错误信息:如果设定重定向,则重定向到新的URL地址. 6) 客户端浏览器下载数据,解析HTML源文件,解析的过程中实现对页面的排版,解析完成后,在浏览器中显示基础的页面. 7) 分析页面中

在浏览器中输入网址后是怎么跳转到指定的服务器的

1. 首先,在浏览器里输入要网址 2. 浏览器查找域名的IP地址 DNS查找过程如下: 浏览器缓存 – 浏览器会缓存DNS记录一段时间. 有趣的是,操作系统没有告诉浏览器储存DNS记录的时间,这样不同浏览器会储存个自固定的一个时间(2分钟到30分钟不等). 系统缓存 – 如果在浏览器缓存里没有找到需要的记录,浏览器会做一个系统调用(windows里是gethostbyname).这样便可获得系统缓存中的记录. 路由器缓存 – 接着,前面的查询请求发向路由器,它一般会有自己的DNS缓存. ISP

在浏览器中输入 www.baidu.com 后执行的全部过程

现在假设如果我们在客户端(客户端)浏览器中输入http://www.baidu.com,而baidu.com为要访问的服务器(服务器),下面详细分析客户端为了访问服务器而执行的一系列关于协议的操作: 1.客户端浏览器通过DNS解析到www.baidu.com的IP地址220.181.27.48,通过这个IP地址找到客户端到服务器的路径.客户端浏览器发起一个HTTP会话到220.161.27.48,然后通过TCP进行封装数据包,输入到网络层. 2.在客户端的传输层,把HTTP会话请求分成报文段,添