浏览器输入URL后,发生了什么?(打开一个网页会使用哪些协议?)

  简单说来分为6个过程

1.DNS解析

互联网每一个服务器都是以ip地址作为界限的,并不是我们平时输入的url地址,就比如www.ccc.com这一个网址,当输入进浏览器之后就会由DNS解析将它转化成一个ip地址,所以DNS实际上担任的是一个翻译者的角色。下面放一个大佬的图,看了之后估计你就会更加深入的了解DNS域名解析的原理了。

从图上可以看出域名解析其实是一个从右到左的过程也就是从-.到-com到-ccc.com到-www.ccc.com。第一个.表示的就是根域名服务器的域名解析。那了解了这个过程会给我们带阿来什么样的好处呢?首先我们看到一个DNS域名解析的过程还是相对比较复杂的,所以是不是我们可以添加一个DNS缓存呢?就像大多数的缓存一样,在我们访问过一个地址之后,缓存就会将对应的ip地址存下来。当然缓存的种类也按照整个步骤分为浏览器缓存,系统缓存,路由器缓存,IPS服务器缓存,根域名服务器缓存,顶级域名服务器缓存,主域名服务器缓存这几种。事实上,现在每一个网址背后都会有很多台服务器,那么DNS是怎么进行筛选出一个最适合的ip地址呢?那就是DNS负载均衡过程,也就是DNS重定向,通过这个过程DNS帮助我们选择最适合当前浏览器地址的对应ip地址。,比如大家熟悉的CDN就是使用的这个技术。

2.TCP连接

其实发送HTTP请求是和TCP连接绑定的,HTTP协议是使用TCP作为其传输层协议的,当TCP出现瓶颈时,HTTP也会受到影响。

3.发送HTTP请求

在讲发送HTTP请求之前,必须要先聊https协议,在传输过程中,http报文是和TCP报文连在一起得,服务器在收到TCP报文之后,会解析出http报文,这样传输是有一定得危险性得,因为http报文是明文得,所以如果泄露得话就会出现信息泄露,那么https协议就是在http报文和tcp报文连在一起之前进行加密,所以https协议的本质就是HTTP + SSL(or TLS)。在HTTP报文进入TCP报文之前,先使用SSL对HTTP报文进行加密。从网络的层级结构看它位于HTTP协议与TCP协议之间。而https在进行数据传输之前,客户端要与服务端进行一次握手,(TLS和SSL握手),确定加密得信息,因此虽然https相对于http之间安全性更高,但是消耗得时间相对也就更高,所以是否采用https协议要根据情况来定。

同样咱们继续聊http请求,因为我对前端了解不是很多,http请求又发生在客户端,所以在这里我只根据自己得理解简略得谈一下。发送http请求的过程就是构建http请求报文并通过TCP协议中发送到服务器指定端口(HTTP协议80/8080, HTTPS协议443)TTP请求报文是由三部分组成: 请求行, 请求报头和请求正文。

4.服务器处理请求并返回HTTP报文

这一段自然就是对照后端得http了。后端从接收到tcp报文开始,就会对tcp进行处理,这里也就是用到了socket,对http协议进行解析,封装成HTTP Request对象,供上层使用。这一部分使用web服务器去执行的,比如tomcat。HTTP响应报文也是由三部分组成: 状态码, 响应报头和响应报文。

状态码就是我们常见的比如404,500等具体分为如下

1开头:指示信息——表示已经接受,继续处理。

2开头:成功——表示信息已经接收、理解、接受

3开头:重定向——需要进一步的操作。

4开头:客户端错误——请求有语法或者其他错误。

5开头:服务器错误——未能实现合法的请求。

响应报头:比如server和connection

响应报文:文本信息,比如html文件等等。

5.浏览器解析和渲染页面

6.连接结束

原文地址:https://www.cnblogs.com/ffdsj/p/12375290.html

时间: 2024-10-05 21:00:57

浏览器输入URL后,发生了什么?(打开一个网页会使用哪些协议?)的相关文章

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

细说浏览器输入URL后发生了什么 总体概览 大体上,可以分为六步,当然每一步都可以详细都展开来说,这里先放一张总览图: DNS域名解析 在网络世界,你肯定记得住网站的名称,但是很难记住网站的 IP 地址,因而也需要一个地址簿,就是 DNS 服务器.DNS 服务器是高可用.高并发和分布式的,它是树状结构,如图: 根 DNS 服务器 :返回顶级域 DNS 服务器的 IP 地址 顶级域 DNS 服务器:返回权威 DNS 服务器的 IP 地址 权威 DNS 服务器 :返回相应主机的 IP 地址 DNS的

浏览器输入url后发生的事情以及每步可以做的优化

首先总结下输入url按下回车后的大致流程: 查询url的ip地址. 建立tcp连接,连接服务器. 浏览器发起http/https请求. 服务器响应浏览器的请求. 网页的解析与渲染. 下面分析每个过程 查询url的ip地址详细过程: 浏览器解析出url中的域名. 查询浏览器的DNS缓存. 浏览器中没有DNS缓存,则查找本地客户端hosts文件有无对应的ip地址. hosts中无,则查找本地DNS服务器有无对应的缓存. 若本地DNS服务器没有缓存,则向根服务器查询,进行递归查找. 递归查找从顶级域名

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

假如在浏览器中输入了www.cnblogs.com,然后回车 DNS解析 浏览器检查浏览器缓存是否有域名对应的IP. 浏览器查找操作系统是否有对应的DNS解析成果(hosts文件). 查找路由器缓存. 浏览器客户端向本地域名服务器发送一个含有域名www.cnblogs.com的DNS查询报文.(大约80%的域名解析到这里就完成了) 本地DNS服务器把查询报文转发到根DNS服务器,根DNS服务器注意到其com后缀,于是向本地DNS服务器返回com的顶级域名服务器的IP地址. 本地DNS服务器再次向

在浏览器地址栏中输入URL后发生了什么

在浏览器地址栏中输入URL后发生了什么 基本流程: ①查询ip地址 ②建立tcp连接,接入服务器 ③浏览器发起http请求 ④服务器后台操作并做出http响应 ⑤网页的解析与渲染 详细步骤如下: 查询ip地址 ①浏览器解析出url中的域名. ②查询浏览器的DNS缓存. ③浏览器中没有DNS缓存,则查找本地客户端hosts文件有无对应的ip地址. ④hosts中无,则查找本地DNS服务器(运营商提供的DNS服务器)有无对应的DNS缓存. ⑤若本地DNS没有DNS缓存,则向根服务器查询,进行递归查找

在浏览器的地址栏中输入url后发生了什么

这是一个非常有意思的事情,通过这个我们可以更好地理解http请求. 在浏览器的地址栏中输入url后会经历下面的步骤: 第一步:进行域名解析--- 浏览器搜索自身的DNS缓存,如果有缓存,再看有没有过期,如果没过期,就是用这个ip,如果过期,这个过程就结束了. 注:查看谷歌浏览器的dns缓存的方法--在地址栏中输入chrome://net-internals/#dns 这样就可以看到自己的浏览器中的dns缓存. 第二步:如果浏览器没有搜索到自身的dns缓存或者是自身的dns缓存已经失效,那么它就会

用户输入URL后发生了什么,以及优化问题

用户角度:1.打开浏览器2.输入URL3.按下回车4.浏览器呈现画面 当用户输入页面地址后,浏览器获得用户希望访问的地址,便向该站点服务器发起一系列的请求,这些请求不光包括对页面的请求,还包括对页面中许许多多组件的请求,比如图片(img).叠层样式表(css).脚本(javascript).内嵌页面(iframe).音频媒体文件等.接下来一段时间,浏览器等待服务器的响应以及返回的数据.待浏览器获得所有返回的数据后,经过浏览器本地的计算和渲染,最终呈现一幅完整的页面在用户眼前. 这个过程中,主要经

输入url后发生了什么

(1)浏览器解析 (2)查询缓存 (3)DNS查询 顺序如下,若其中一步成功直接进去建立连接部分: -- 浏览器自身DNS -- 操作系统DNS -- 本地hosts文件 -- 像域名服务器发送请求 (4)建立连接 -- TCP三次握手(three-way handshaking) -- 发送方: SYN(synchonize) -- 接受方: SYN/ACK(acknowledgement), 确认信息传达 -- 发送方: ACK - 确认接受方再线可收消息,握手结束 Accept -- 1,

【计算机网络】当输入URL后发生了什么

我们使用一个非常简单的模型,并假设它是最简单的HTTP请求,不使用代理并且使用的是IPv4 1. 浏览器首先判断使用的是什么协议(ftp/http),然后对URL进行安全检查.最后浏览器查看缓存,如果请求的对象在缓存中并且是比较新的.那么直接跳到步骤9 2. 浏览器请求OS返回服务器的IP地址 3. 操作系统启动DNS查询并向浏览器返回服务器的IP地址 4. 浏览器使用TCP协议建立与服务器的连接 5. 浏览器通过TCP连接发出HTTP请求 6. 浏览器收到HTTP响应.这时候浏览器可能关闭TC

计算机网络【6】—— 从浏览器输入URL到显示页面发生了什么

当在浏览器地址栏输入网址,如:www.baidu.com后浏览器是怎么把最终的页面呈现出来的呢?这个过程可以大致分为两个部分:网络通信和页面渲染. 一.网络通信 互联网内各网络设备间的通信都遵循TCP/IP协议,利用TCP/IP协议族进行网络通信时,会通过分层顺序与对方进行通信.分层由高到低分别为:应用层.传输层.网络层.数据链路层.发送端从应用层往下走,接收端从数据链路层网上走.如图所示: 1. 在浏览器中输入url 用户输入url,例如http://www.baidu.com.其中http为