浏览器输入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.连接结束
浏览器输入URL后,发生了什么?(打开一个网页会使用哪些协议?)的更多相关文章
- 在浏览器输入URL后发生了什么?
摘录部分一:https://www.cnblogs.com/kongxy/p/4615226.html 从输入URL到浏览器显示页面发生了什么 当在浏览器地址栏输入网址,如:www.baidu.com ...
- 浏览器输入url后发生的事情以及每步可以做的优化
首先总结下输入url按下回车后的大致流程: 查询url的ip地址. 建立tcp连接,连接服务器. 浏览器发起http/https请求. 服务器响应浏览器的请求. 网页的解析与渲染. 下面分析每个过程 ...
- 天龙八步"细说浏览器输入URL后发生了什么
本文摘要: 1.DNS域名解析: 2.建立TCP连接: 3.发送HTTP请求: 4.服务器处理请求: 5.返回响应结果: 6.关闭TCP连接: 7.浏览器解析HTML: 8.浏览器布局渲染: 总结 输 ...
- 【转】浏览器输入URL后发生了什么
转自:http://www.cnblogs.com/webdeve/p/7865520.html本文摘要: 输入网址 当我们在浏览器输入网址并回车后,一切从这里开始. 一.DNS域名解析 我们在浏览器 ...
- “天龙八步”细说浏览器输入URL后发生了什么
本文摘要: 1.DNS域名解析: 2.建立TCP连接: 3.发送HTTP请求: 4.服务器处理请求: 5.返回响应结果: 6.关闭TCP连接: 7.浏览器解析HTML: 8.浏览器布局渲染: 总结 输 ...
- 细说浏览器输入URL后发生了什么
本文摘要: 1.DNS域名解析: 2.建立TCP连接: 3.发送HTTP请求: 4.服务器处理请求: 5.返回响应结果: 6.关闭TCP连接: 7.浏览器解析HTML: 8.浏览器布局渲染: 总结 ...
- 浏览器输入URL后发生了什么
假如在浏览器中输入了www.cnblogs.com,然后回车 DNS解析 浏览器检查浏览器缓存是否有域名对应的IP. 浏览器查找操作系统是否有对应的DNS解析成果(hosts文件). 查找路由器缓存. ...
- [译]当你在浏览器输入url后发生了什么
面试题会经常问这个,之前也被问过,回答的不是很好,后来看到百度前端的一篇博客,啰嗦了好多,很么触摸屏都上了..后来看到stackoverflow上的一个回答,比较短. 原文地址:http://stac ...
- 前端基础:”天龙八步“细说浏览器输入URL后发生了什么
参考:https://www.xuecaijie.com/it/157.html#1Q64p5DeC8dKFF 本文摘要: 1.DNS域名解析: 2.建立TCP连接: 3.发送HTTP请求: 4.服务 ...
- 【转】浏览器中输入url后发生了什么
原文地址:http://www.jianshu.com/p/c1dfc6caa520 在学习前端的过程中经常看到这样一个问题:当你在浏览器中输入url后发生了什么?下面是个人学习过程中的总结,供个人复 ...
随机推荐
- eclipse搜索类快捷键
习惯的编辑器可以提高编程效率,熟悉的快捷键可以提高工作效率,本文更新eclipse中常用的搜索快捷键 打开资源快捷键:Ctrl+Shift+R 通过在搜索框中输入名字可以很方便的在项目或工作空间中找某 ...
- SystemVerilog基本语法总结(下)
2018年IC设计企业笔试题解析-(验证方向) 1.请简述:定宽数组,动态数组,关联数组,队列四种数据类型的各自特点.解析:(1)定宽数组:其宽度在声明的时候就指定了,故其宽度在编译时就确定了.(2) ...
- php 投票系统
1.投票主界面(问题界面) <?php$db = new Mysqli("localhost","root","root"," ...
- rinetd 进行转发
目前云数据库 Redis 版需要通过 ECS 进行内网连接访问.如果您本地需要通过公网访问云数据库 Redis,可以在 ECS Linux 云服务器中安装 rinetd 进行转发实现. 在云服务器 E ...
- JavaBean是什么
作者:杨博链接:https://www.zhihu.com/question/19773379/answer/31625054来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出 ...
- C++字符集和词法记号以及符号常量
C++字符集 大小写的英文字母:A~Z,a~z 数字符号:0~9 特殊字符:!#%*()等 关键字:C++预定义的单词 标识符:程序员声明的单词,它命名程序正文中的一些实体 文字:在程序中直接使用符号 ...
- CodeForces - 869A The Artful Expedient
题意:有两个序列X和Y,各含n个数,这2n个数互不相同,若满足xi^yj的结果在序列X内或序列Y内的(xi,yj)对数为偶数,则输出"Karen",否则输出"Koyomi ...
- docker 为镜像添加ssh服务-docker commit命令创建
环境centos7 一.准备工作 docker pull ubuntu:18.04 docker run -it ubuntu:18.04 bash 二.配置软件源apt-get update,如果系 ...
- idea 将部分class文件打包成jar使用
工作中有时候有太多模块堆放一块比较混乱,将某个功能(例如:三方支付)所需要的模块打包成jar使用起来会方便点. 步骤如下: 选择 Empty,然后为自己打的jar起个名字 然后在myjar上面右键 创 ...
- Redis Cluster 获取主从关系
redis-cli -h 192.168.11.111 -p 6380 -c cluster slots | xargs -n8 | awk '{print $3":"$4&qu ...