当使用POST 方法时,需要将表单中填写的信息写在消息体中。到此为止,请求消息的生成操作就全部完成了。
发送请求后会收到响应当我们将上述请求消息发送出去之后,Web 服务器会返回响应消息。关于响应消息我们在这里先粗略地了解一下。响应消息的格式以及基本思路和请求消息是相同的(图1.5(b)),差别只在第一行上。在响应消息中,第一行的内容为状态码和响应短语,用来表示请求的执行结果是成功还是出错。状态码和响应短语表示的内容一致,但它们的用途不同。状态码是一个数字,它主要用来向程序告知执行的结果(表1.3);相对地,响应短语则是一段文字,用来向人们告知执行的结果。
返回响应消息之后,浏览器会将数据提取出来并显示在屏幕上,我们就能够看到网页的样子了。如果网页的内容只有文字,那么到这里就全部处理完毕了,但如果网页中还包括图片等资源,则还有下文。
当网页中包含图片时,会在网页中的相应位置嵌入表示图片文件的标签的控制信息。浏览器会在显示文字时搜索相应的标签,当遇到图片相关的标签时,会在屏幕上留出用来显示图片的空间,然后再次访问Web 服务器,按照标签中指定的文件名向Web 服务器请求获取相应的图片并显示在预留的空间中。这个步骤和获取网页文件时一样,只要在URI 部分写上图片的文件名并生成和发送请求消息就可以了。
由于每条请求消息中只能写1 个URI,所以每次只能获取1 个文件,如果需要获取多个文件,必须对每个文件单独发送1 条请求。比如1 个网页中包含3 张图片,那么获取网页加上获取图片,一共需要向Web 服务器发送4 条请求。
判断所需的文件,然后获取这些文件并显示在屏幕上,这一系列工作的整体指挥也是浏览器的任务之一,而Web 服务器却毫不知情。Web 服务器完全不关心这4 条请求获取的文件到底是1 个网页上的还是不同网页上的,它的任务就是对每一条单独的请求返回1 条响应而已。
到这里,我们已经介绍了浏览器与Web 服务器进行交互的整个过程。作为参考,图1.7 展示了浏览器与Web 服务器之间交互消息的一个实例。在这个例子中,我们需要获取一张名为sample1.htm 的网页,网页中包含一张名为picture.jpg 的图片,图中展示了这个过程中产生的消息。
1 条请求消息中只能写1 个URI。如果需要获取多个文件,必须对每个文件单独发送1 条请求。
......
上面内容是网络连接内容的一个小小的点,继续学习网络是怎样连接的,可以读《网络是怎样连接的》,本文内容就节选自它,它是日系图解版“计算机网络概论”,在豆瓣收获9.2分好评,它涵盖了网络的全貌。
即便不提互联网(Internet),大家也都知道网络是一个巨大而复杂的系统,因此用一本书的篇幅涵盖所有的知识是不可能的。
不过,我们可以开启探索之旅,从在浏览器中输入网址(比如 http://www.nikkeibp.co.jp/)开始,一路追踪到显示出网页内容为止的整个过程,这样就能够用一本书的篇幅讲清楚网络的全貌了。