浏览器输入www.baidu.com并按下回车,其中间经历了什么?
浏览器分析URL
什么是URL:统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。
常见协议 | 协议含义 |
---|---|
HTTP | 超文本传输协议资源 |
HTTPS | 用安全套接字层传送的超文本传输协议 |
FTP | 文件传输协议 |
MailTo | 电子邮件地址 |
File | 当地电脑或网上分享的文件 |
实际日常中,http://一般来说没有人会去打,还有80端口,而是直接输入了 www.baidu.com 然后按下回车访问
这里我猜测是浏览器分析到没有任何URL标识和端口,因此默认解析为是HTTP协议80端口。
DNS域名解析
什么是DNS:DNS(domain name system)域名系统是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP地址。
个人理解:原本互联网是通过IP地址来沟通的,也就是XXX.XXX.XXX.XXX,然而我们不可能记得住也懒得记这些IP地址对应的网站(除非是一些H网IP地址233),那么DNS域名系统的作用就是,直接记住一个名字(域名),输入这个名字(域名)系统会自动寻找这个名字对应的IP地址进行访问。
打开baidu请求DNS解析 → 浏览器DNS缓存 → 系统hosts → 系统网络连接的DNS → 找不到则向根域名查找 → 返回IP地址
windows系统下打开命令提示符输入ping IP地址即可知道该域名对应的IP地址
ping
发送请求&接收数据
打开chrome浏览器的F12开发人员工具,当我们访问网站时NETWORK所列出所有访问请求和返回的信息资源
image
General(综合信息)
Request URL:https://www.baidu.com/
Request Method:GET
Status Code:200 OK
Remote Address:183.232.231.173:443
Referrer Policy:no-referrer-when-downgrade
Request Headers(请求信息头)
Response Headers(返回信息头)
从上面综合信息中看到HTTP状态码(status code)是200,说明请求已成功并返回信息,请求所希望的响应头或数据体将随此响应返回。
随此说明中间还有一个重要过程,是什么东西在接受请求并且处理请求呢?答:Web应用服务器
HTTP协议端口是80,Web应用服务器将会一直监听80端口,如果突然收到了一个HTTP协议的请求,那么web应用服务器就会开始处理请求并且返回请求所需要的信息。
常见WEB应用服务器
- Apache软件基金会的Apache HTTP服务器
- Microsoft的Internet Information Server(IIS)
- Google的Google Web Server
- Nginx公司的nginx
- 淘宝从nginx改良的Tengine
- lighttpd公司的lighttpd
浏览器解析数据
web应用服务器收到请求信息,分析 Request Headers(请求信息头),得出结果并返回Response Headers(返回信息头)。
返回信息头里的Content-Type内容类型,是用于定义网络文件的类型和编码,决定浏览器将以什么形式、什么编码读取这个文件。
上图的信息是 Content-Type:text/html;charset=utf-8
也就是返回类型是 html文件 且 编码是UTF-8。
浏览器将会按照这个类型来解析返回的数据,以HTML网页形式显示出来。
HTML中如果需要其他css、js、图片等,那么将会再发出请求,并且按照返回信息来显示或调用。
网友评论