在浏览器地址栏输入百度网址之后的故事(面试必考)

面试的时候,面试官经常会问这样的问题,我在浏览器地址栏输入”www.baidu.com”,之后发生了哪些事情呢,这个问题其实是想问你与网页访问有关的网络协议,下面我们就来简单梳理一下,如何比较得体的回答这个问题。

Step 1:地址解析。

如果是首次访问百度,输入地址回车后,浏览器访问系统Host文件从中寻找www.baidu.com对应的IP地址(Windows默认的host文件基本是空的,所以这步执行不会成功)。没有找到对应IP地址,则主机向DNS服务器发送请求,DNS服务器解析到域名对应的IP并返回。事实上,你在地址栏输入百度的IP而不是域名也可以实现访问。DNS服务既提供从域名到IP的解析,也提供从IP到域名的解析。

DNS服务详解: https://cloud.tencent.com/developer/article/1037263

Step 2:建立TCP连接

拿到百度的IP后,浏览器通过TCP协议建立TCP连接。TCP是一种可靠的传输协议,其建立要经过三次握手,其释放要经历四次挥手

TCP连接的三次握手和四次挥手: http://uule.iteye.com/blog/2213562

Step 3:使用HTTP协议请求网页内容。

HTTP是一种请求/应答协议,通过客户机和服务器相互发送信息的方式工作。通常HTTP消息包括客户机向服务器的请求消息服务器向客户机的响应消息。使用HTTP消息头,可以实现客户机与服务器之间的HTTP请求和HTTP应答。消息头分为通用头、请求头、相应头、实体头。

Step 4:渲染。

客户端收到服务器的HTTP应答后,从其中提取出HTML文件,然后进行渲染,之后就可以看到百度的首页了。

查看知乎讨论: 用户用浏览器访问一个网站的时候背后的过程与步骤是怎样的? https://www.zhihu.com/question/20513729

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏JetpropelledSnake

Python Web学习笔记之TCP、UDP、ICMP、IGMP的解释和区别

TCP与UDP解释 TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输...

374120
来自专栏HadesMo

腾讯云CDN域名解析错误引发的血案

今天在腾讯云CDN控制台接入douniwan.club域名,接入成功后进入douniwan.club域名的基本配置,复制分配的CNAME域名(douniwan....

90770
来自专栏Danny的专栏

必备的网络常用测试命令(tracert命令)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/...

3.1K20
来自专栏前沿技墅

服务化的基石:聊聊通信协议那些事儿

25670
来自专栏架构师之路

一分钟了解四层/七层反向代理 | 架构师之路

上一篇文章《session一致性架构设计实践》,对于其中的第三种“反向代理hash法”,不少同学留言问: 什么是四层反向代理hash 什么是七层反向代理hash...

58040
来自专栏Laoqi's Linux运维专列

LVS负载均衡中arp_ignore和arp_annonuce参数配置的含义

12330
来自专栏程序员与猫

从输入url到页面返回到底发生了什么

1. 前言 Google应该是开发者平日里用得最多的网站之一,今早笔者在浏览器地址栏里键入www.google.com的时候,突然想了解下这背后的网络通信过程究...

23680
来自专栏架构师之路

微信为什么不丢消息?

上一章和大家分享了《http如何像tcp一样实时的收消息?》, 本章来聊一聊即时通讯(Instant Messaging,后简称im)消息的可靠投递。 一、报文...

67480
来自专栏清墨_iOS分享

Socket解惑

不少开发人员对Socket的概念不是很熟悉,这篇文章可带你快速了解socket(高手略过)。 Socket又称"套接字”,网络上的两个程序通过一个双向的通信连接...

62270
来自专栏用户画像

第28章 以太网交换基本原理

路由器或三层交换机的三层接口处于独立的广播域中,终端主机发出的广播帧在三层接口被终止。

12720

扫码关注云+社区

领取腾讯云代金券