admin管理员组

文章数量:1534194

从浏览器输入http://www.baidu,到看到百度主页的过程中到底发生了什么?

网络模型

1. 根据网络七层模型,浏览器和服务器都可以认为是应用层的一个应用,
2. 所以本质上来说就是从一个应用层到另外一个应用层的过程,在我们这个过程中主要采用的http协议进行通信

HTTP协议(简单介绍)

    HTTP 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范
    1. http的请求规范:
    	请求行(请求类型,欲访问资源,协议版本)
    	请求头(headers,cookies等)
    		Host:请求的目的地(主机域名)
    		User-Agent:客户端的信息,它是检测浏览器类型的重要信息,由浏览器定义,并且在每个请求中自动发送
    	空行 请求头后面必须有一个空行
    	请求正文(请求体)(参数)可以为空
   

DNS解析

1. HTTP协议基于底层的 TCP/IP 协议,所以必须要用 IP 地址建立连接。由于我们在浏览器输入的是域名,所以我们需要把域名转换为IP地址,也就是域名解析(DNS)
2. DNS流程:
    第一步:检查浏览器缓存中是否缓存过该域名对应的IP地址
    第二步:如果在浏览器缓存中没有找到IP,那么将继续查找本机系统(hosts)是否缓存过IP
    第三步:向本地域名解析服务器LDNS发起域名解析的请求
    第四步:向根域名解析服务器发起域名解析请求
    第五步:根域名服务器返回顶级域名解析服务器(gTLD)地址。如、、,全球只有13台
    第六步:本地域名服务器LDNS向gTLD服务器发起解析请求
    第七步:接受请求的gTLD服务器查找并返回此域名对应的Name Server域名服务器的地址,这个Name Server通常就是用户注册的域名服务器,例如用户在某个域名服务提供商申请的域名,那么这个域名解析任务就由这个域名提供商的服务器来完成
    第八步:Name Server域名服务器会查询存储的域名和IP的映射关系表,在正常情况下都根据域名得到目标IP地址,连同一个TTL值返回给DNS Server域名服务器
	  第九步:返回该域名对应的IP和TTL值,LDNS会缓存这个域名和IP的对应关系,缓存时间由TTL值控制
	  第十步:把解析的结果返回给用户,用户根据TTL值缓存在本地系统缓存中,域名解析过程结束

	在实际的DNS解析过程中,可能还不止这10步,如Name Server可能有很多级,或者有一个GTM来负载均衡控制,这都有可能会影响域名解析过程。

TCP协议

	传输控制协议(英语:Transmission Control Protocol,缩写:TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能。用户数据报协议(UDP)是同一层内另一个重要的传输协议。
	TCP 报文是 TCP 层传输的数据单元,也称为报文段ÿ

本文标签: 发生了什么过程中浏览器主页baidu