探索浏览器内部(一)生成HTTP消息流程

1输入网址开始

(1) URL各种格式及各部分
①HTTP:Hypertext Transfer Protocol,超文本传送协议。
②协议:通信操作的规则定义称为协议(protocol)。
③FTP:File Transfer Protocol,文件传送协议。这是一种在上传、下载文件时使用的协议。使用 FTP 协议来传送文件的程序也被叫作 FTP。
④域名:如:www.baidu.com这样以"."分隔的名称。
⑤端口号:用来识别要连接的服务器程序的编号。不同服务器使用不同的编号,如Web是80,邮件25等。
⑥URI(Uniform Resource Identifier):统一资源标识符。例如:“/dir1/file1.html”
在这里插入图片描述

2.浏览器解析URL步骤

在这里插入图片描述

【补充】省略文件名情况
(1)省略文件名
http://www.lab.glasscom.com/dir/。其中"/“结尾表示”/dir"后面的文件名被省略了,然而在不同服务器下默认访问的文件名不同,大多数是index.html或default.html。
http://www.lab.glasscom.com/。默认在当前目录下访问叫"/"的目录,规则同上。
(2)省略目录名
http://www.lab.glasscom.com。访问根目录下的index和default.html文件
http://www.lab.glasscom.com/whatisthis。如果Web服务器上存在为 whatisthis 的文件,则将 whatisthis 作为文件名来处
理;如果存在名为 whatisthis 的目录,则将 whatisthis 作为目录名来处理

【补充】HTTP基本思路
在这里插入图片描述
HTTP定义了客户端和服务器之间交互的消息内容和步骤:
①首先,客户端会向服务器发送请求消息,即“做什么”和“怎么做”两个部分。
②“做什么”就是URI,一般来说它存放了一个网页数据的文件名或者一个CGI程序的文件名,例如“/dir1/file1.html”。“怎么做”即方法,它告诉Web服务器怎么完成任务,例如POST和GET等【见下】。(除下图外,HTTP 消息中还有一些用来表示附加信息的头字段。客户端向 Web 服务器发送数据时,会先发送头字段,然后再发送数据。)
③收到消息后,Web服务器解析内容,再判断是"做什么"和"怎么做"。
④做完后,结果放在响应消息中返回。
在这里插入图片描述

3.生成HTTP请求消息

在(3)基础上,浏览器确定了Web服务器和文件名,接下来就是生成HTTP消息(见图1.5):
①首先,开头第一行(请求行)告诉Web服务器怎么操作。例如在浏览器中输入网址显示网页为GET方法,击网页中的href超链接也为Get,或表单提交之后可能是POST可能是Get,根据应用情景判断是哪种操作(见图1.6)。
②写好访问方法后再加上URI(一般为文件和程序的路径名),即/< 目录名 >/…/< 文件名 >。(一般来说路径名包含在了URL中)
③最后在第一行加上HTTP版本号,请求行就完了。
④第二行开始为消息头,因为有时候还需要额外的详细信息存放在消息头中,例如日期、客户端支持的数据类型、语言、压缩格式、客户端和服务器的软件名称和版本、数据有效期及最后更新时间等。(具体参考表1.2)
在这里插入图片描述

【表1.3】
在这里插入图片描述在这里插入图片描述

4.发送请求后的响应消息

响应消息和请求消息的基本思路相同,只是在第一行上有差别。响应消息中,第一行为状态码(见表1.3)和响应短语。响应消息返回后,浏览器会将数据提取出来并显示在显示屏上,就有了现在的网页!如果网页中还有图片等资源,则会在网页中的响应位置嵌入表示图片的标签,这样不同的资源就可以用不同的方法表示出来,就像写word文档一样。获取网页文件思路也是这样,只要在URI写上图片的文件名并生成和发送消息就可以了(见图1.7)。
【补充】
注意:1 条请求消息中只能写 1 个 URI。如果需要获取多个文件,必须对每个文件单独发送 1 条请求。比如一个网页包含3张图片,那么获取网页加上获取图片一个需要4条请求。
(在图片请求还未完时,图片暂时在HTML代码相应位置空着,等图片请求全部完成成,所有图片也会显示出来。这也就是为什么访问网站,先显示文字再显示图片;访问一个页面会有多个请求的原因)

在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值