本文已参与「新人创作礼」活动,一起开启掘金创作之路。
前言
本文主要内容:总结了互联网、浏览器等的相关内容
什么是Internet
概述
从具体构成的角度可以较为清晰的解答这个问题,即节点、边、协议构成的通讯系统
起源于一个美国国防部的研究计划ARPANET(Advanced Research Projects Agency NETwork)
当时想建立一个能够抵御核弹的通讯系统,所以将信息拆成一个个小的区块,然后尽可能快的在网状网络上向各个可能的方向传输信息
- 节点:主机及其上的应用;路由器、交换机等网络交换设备
- 边:通信链路
- 协议:HTTP协议、TCP/IP协议等
Internet的运行
没有人在维护Internet的运行,或者说,每个人都在维护Internet的运行
Internet由大量独立工作的网络构成,是一个完全的分布式系统,没有集中化的对信息的处理与构建。
什么是HTTP
超文本传输协议(HyperText Transfer Protocol),可以理解为一台计算机和另一台计算机交流的语言
HTTP工作流程
- 原始状态:客户端和web服务器之间没有关系
- 客户端向web服务器发送请求,建立连接
- 服务器沿着连接返回相应信息
- 客户端收到响应,HTML代码翻译
- 断开连接
请求头和响应头的格式
请求头
响应头
状态码和状态文字
- 1XX:接收到请求,继续处理
- 2XX:请求成功
- 3XX:请求重定向
- 4XX:客户端请求错误
- 5XX:服务端出现问题
浏览器及其工作方式
浏览器的构成
用户界面 -> 浏览器引擎 -> 渲染引擎(内核)
不同浏览器的内核:
IE(Trident)、Firefox(Gecko)、Safari(Webkit)、Opera/Edge/Chrome(Blink)
浏览器工作流程
- 当你在浏览器地址栏输入时,浏览器的UI线程会捕捉你输入的内容:如果输入的是一个网址,UI线程会启动一个网络线程来请求DNS进行域名解析,接着连接服务器获取数据;如果输入的不是网址,则启用搜索线程
- 当网络线程获取数据后,利用SafeBrowsing检查是否安全,返回结果给UI线程
- 如果安全,UI线程创建一个渲染器进程来渲染页面,同时浏览器进程通过IPC管道将数据传递给渲染器进程,正式进入渲染流程
- 将接收到的html、css、js、image等资源渲染成用户可以交互的web页面
DNS及其工作方式
域名管理系统(Domain Name System)
互联网每一台电脑都有一个ip地址,域名和IP是绑定的,DNS将域名翻译为IP地址,因此在地址栏输入域名能够访问到对应的ip地址
DNS工作流程
- 用户在地址栏输入 ‘example.com’ ,然后这个请求通过互联网,被DNS递归解析器接收到
- 解析器访问DNS根域名服务器(.)
- 根服务器响应解析器给它的顶级域名(如.com 或者 .net)。 当搜索example.com时,我们的请求指向的顶级域名就是.com
- 解析器于是向.com域发出请求
- 然后顶级域名服务器返回域名服务器的IP地址
- 最后,递归解析器向域名服务器发送一个查询
- example.com的IP地址然后从域名服务器返回给解析器
- DNS解析器用最初请求的域名的IP地址响应web浏览器
- 浏览器向该IP地址发起HTTP请求
- 该IP的服务器返回要在浏览器中呈现的网页