网络是怎样连接的之探索浏览器内部

首先应该明确浏览器等应用程序并不具备网络控制功能,而是委托操作系统去控制网络。

(1) http请求消息的生成:

为了和web服务端交互需要生成请求消息发送给web服务器,浏览器通过用户的输入网址(URL)进行解析,生成相应的请求消息。浏览器通过生成的请求消息来告知服务器需要什么数据。

URL的写法各有不同,但都有一个特点 即有开头文字如http,ftp,不同的开头文字代表着浏览器应当使用不同的请求方法。


(2)向DNS服务器请求服务器ip地址

请求消息生成后,委托操作系统发送web请求,但需要知道web服务器的ip地址,而输入的网址只有域名,因此需要向DNS服务器查询域名对应的ip地址 (该过程可能涉及到多级查询)

 向DNS请求服务器ip地址时,会向最近的DNS服务器发送请求,如果没有则向根服务器发送请求,在依次向对应的下级DNS服务器查询(每个DNS服务器,都会保存它下级域的地址,)直至查出或查完没有结果为止 ,(没考虑ip缓存的情况,不肯能每次都这样,太耗时,现实中会有优化)

(3)浏览器在解析完URL后 浏览器会使用HTTP协议来访问服务器。

首先得明确http协议 HTTP 协议定义了客户端和服务器之间交互的消息内容和步骤。 在浏览器发送请求时其所包含的内容十分简单(分别为URI和方法) URI为所操作的目标(如“/dir1/file1.html”),方法为需要进行哪些操作(如获取get),即 “对什么”和“ 进行怎样的操作”其中典型的例子包括读取 URI 表示的数据、将客户端输入的数据发送给 URI 表示的程序等。HTTP 消息中还有一些用来表示附加信息的头字段。客户端向 Web 服务器发送数据时,会先发送头字段,然后再发送数据。不过,头字段属于可有可无的附加信息。

 在收到请求后web会进行解析 并进行响应消息。

在这里需要注意下get和post的区别,当提交表单时,get会将参数连接到地址后面 容易暴露,而post是将其放在消息头字段中,不易暴露,还有就是,get是幂等的,post不是幂等的。

注意:1 条请求消息中只能写 1 个 URI。如果需要获取多个文件,必须

对每个文件单独发送 1 条请求。

当网页中包含图片时,会在网页中的相应位置嵌入表示图片文件的标签的控制信息。浏览器会在显示文字时搜索相应的标签,当遇到图片相关的标签时,会在屏幕上留出用来显示图片的空间,然后再次访问 Web 服务器,按照标签中指定的文件名向 Web 服务器请求获取相应的图片并显示在预留的空间中




你可能感兴趣的:(网络是怎样连接的之探索浏览器内部)