网络是怎样连接的-第一章-生成HTTP请求消息(下)

1.1.5 生成 HTTP 请求消息

理解了 HTTP 的基本知识之后,让我们回到对浏览器本身的探索中来。

对 URL 进行解析之后,浏览器确定了 Web 服务器和文件名,接下来就是根据这些信息来生成 HTTP 请求消息了。实际上,HTTP 消息在格式上是有严格规定的,因此浏览器会按照规定的格式来生成请求消息,如下图所示:

请求行

请求消息的第一行称为请求行,这里的重点是最开头的方法,方法可以告诉 Web 服务器它应该进行怎样的操作。

不过这里必须先解决一个问题,那就是方法有很多种,我们必须先判断应该选用其中的哪一种,解决这个问题的关键在于浏览器的工作状态。

这次探索之旅是从在浏览器顶部的地址栏中输入网址开始的,但浏览器并非只有在这一种场景下才会向 Web 服务器发送请求消息。

比如点击网页中的超级链接或者在表单中填写信息后点击“提交”按钮,这些场景都会触发浏览器的工作,而选用哪种方法也是根据场景来确定的。

三种场景

我们的场景是在地址栏中输入网址并显示网页,因此这里应该使用GET方法。

点击超级链接的场景中也是使用 GET 方法。

如果是表单,在 HTML源代码中会在表单的属性中指定使用哪种方法来发送请求,可能是 GET 也可能是 POST,如下图所示

注意

GET 方法能够发送的数据只有几百个字节,如果表单中的数据超过这一长
度,则必须使用 POST 方法来发送。

写好方法之后,加一个空格,然后写 URI。

URI 部分的格式如下,一般是文件和程序的路径名。

 /< 目录名 >/…/< 文件名 >

前面已经讲过,路径名一般来说已经包含在 URL 中了,因此只要从URL 中提取出来原封不动地写上去就好了。

第一行的末尾需要写上 HTTP 的版本号,这是为了表示该消息是基于哪个版本的 HTTP 规格编写的。到此为止,第一行就结束了。

消息头

第二行开始为消息头。尽管通过第一行我们就可以大致理解请求的内容,但有些情况下还需要一些额外的详细信息,而消息头的功能就是用来存放这些信息。

消息头的规格中定义了很多项目,如日期、客户端支持的数据类型、语言、压缩格式、客户端和服务器的软件名称和版本、数据有效期和最后更新时间等。

这些项目表示的都是非常细节的信息,不必全部弄明白。大多数情况下消息头的长度为几行到十几行不等。

消息体

写完消息头之后,还需要添加一个完全没有内容的空行,然后写上需要发送的数据。

这一部分称为消息体,也就是消息的主体。

在使用GET 方法的情况下,仅凭方法和 URI,Web 服务器就能够判断需要进行怎样的操作,因此消息体中不需要填写任何数据。消息体结束之后,整个消息也就结束了。

当使用 POST 方法时,需要将表单中填写的信息写在消息体中。到此为止,请求消息的生成操作就全部完成了。

1.1.6 发送请求后会收到响应

当我们将上述请求消息发送出去之后,Web 服务器会返回响应消息。

关于响应消息我们将在第 6 章详细介绍,这里先粗略地了解一下。

响应消息的格式以及基本思路和请求消息是相同的,如1.15中图b所示,差别只在第一行上。

在响应消息中,第一行的内容为状态码和响应短语,用来表示请求的执行结果是成功还是出错。

状态码和响应短语表示的内容一致,但它们的用途不同。

状态码是一个数字,它主要用来向程序告知执行的结果,如下表所示。

相对地,响应短语则是一段文字,用来向人们告知执行的结果。

返回响应消息之后,浏览器会将数据提取出来并显示在屏幕上,我们就能够看到网页的样子了。

如果网页的内容只有文字,那么到这里就全部处理完毕了,但如果网页中还包括图片等资源,则还有下文。

遇到图片时的处理

当网页中包含图片时,会在网页中的相应位置嵌入表示图片文件的标签的控制信息。

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

这个步骤和获取网页文件时一样,只要在 URI 部分写上图片的文件名并生成和发送请求消息就可以了。

需要多少文件发送多少请求

1 条请求消息中只能写 1 个 URI。如果需要获取多个文件,必须对每个文件单独发送 1 条请求。

浏览器与 Web 服务器之间交互消息的一个完整实例

这个例子中,我们需要获取一张名为 sample1.htm 的网页,网页中包含一张名为 picture.jpg 的图片,图中展示了这个过程中产生的消息。

①请求消息的内容

②将文件内容返回给客户端的响应消息

③用于获取图片文件的请求消息

④图片文件内容返回给客户端的响应消息

原文地址:https://www.cnblogs.com/errornull/p/9955167.html

时间: 2024-11-10 00:43:17

网络是怎样连接的-第一章-生成HTTP请求消息(下)的相关文章

第一章 深入web请求过程

B/S架构带来了以下两方面的好处: (1) 客户端使用同一个的浏览器.浏览器有统一性,不需要特殊的配置.浏览器的交互性使得用户使用它非常简单. (2) 服务端基于统一的HTTP.和传统的C/S架构使用自定义应用层协议不同,B/S架构使用HTTP.使用HTTP也为服务提供商 简化了开发模式,使得服务器开发者可以采用相对规范的开发模式,节省开发成本.基于HTTP的服务器有很多,Apache, IIS, Nginx, Tomcat, JBoss等.这些服务器可以直接拿来使用,不需要单独来开发. 1.1

PHP第一章学习——了解PHP(下)

继续昨天的部分! —————————————————————————————— 首先Ubuntu下安装Apache软件: ubuntu更新源有问题,又要解决半天! 我现在很冷静! 安装Apache教程很麻烦,采用网络简单的方式: http://www.111cn.net/sys/linux/42130.htm 主要命令: sudo apt-get install apache2 sudo apt-get install php5 sudo apt-get install libapache2-m

框架体系对小软件作坊的 重要性 第一章

从软件行业兴起,到如今年代虽然不长,但是随着语言的发展,从需求-->编写-->成型,已经不在是难事. 甚至一台电脑,一套编程软件,就可以玩转整个软件流程. 入行许久,对于软件企业来说,人员更新换代是司空见惯的事.没有什么能从根本上解决这个问题.只能通过尽可能的满足员工的需求,来减少人员的流失. 对于软件作坊,甚至是小型的企业,由于各种配套管理措施的不健全,人员流失的问题显现的尤为明显,名副其实的重灾区.人才的流通趋势呈倒金字塔. 长久以来,对于求职者来说,找工作看的就是福利待遇.有了一定的能力

【网络原理】期末复习笔记 第一章 概述

第一章 概述 1.1 网络在现代的作用 21世纪三化:数字化(声音信号数字化处理,为了电脑处理和传输).网络化.信息化 三网:电信网络(电话).有线电视网络(同轴电缆.从有线电视公司到用户).计算机网络(因特                 网.其他网络) 1.2 计算机网络的重要功能       连通性:彼此联通.交换信息     ·远程桌面客户端:mstsc(Microsoft terminal services client) Win10.win7是单用户操作系统,只允许一个用户同时操作.

高性能浏览器网络(High Performance Browser Networking) 第一章

译者注:本文是<High Performance Browser Networking>的翻译版,采用google translator tookit工具翻译,原文很多格式丢失,后续还需要统一整理. 原文请参考:http://chimera.labs.oreilly.com/books/1230000000545/ch01.html 第一章 延迟和带宽的基本概念 速度是一个特性 过去几年内,Web性能优化(WPO)作为一个新的行业快速增长,成为用户追求更高的速度和更快的用户体验的一个明显标志.

笔记-《数据通信与网络教程》-第一章

1. 网络拓扑结构(Network Topology) 1. 公共总线拓扑结构( Common Bus Top ology):它们通过一根单总线(一束并行线)进行通信.每个设备通过相应的接口侦听总线,检查数据传输.如果接口判断出数据时送往它所服务的设备的,它就从总线上读取数据并传给设备.当一个设备有数据需要传送时,其接口电路检测总线是否空闲,如果是就立刻发送数据.当两个设备同时检测到总线空闲并传输数据时会产生一个冲突信号,设备传输时继续监听总线,因此能检测到冲突信号,并停止传输,等待一段随机事件

网络操作系统 第一章

第一章 1.什么是网络操作系统?网络操作系统具有哪些基本功能? 操作系统管理者计算机系统的全部软硬件资源,对程序的执行进行控制,能够使用户方便的使用硬件提供的功能,使硬件的功能发挥得更好. 1.网络通信 2.资源管理 3网络服务 4网络管理 5 互操作 6提供网络接口 2.网络操作系统具有哪些特征? 1.硬件独立 2.网络特性 3.有很高的安全性 3.常用的网络操作系统有哪些? 他们各具有什么特点? windows系列 1) 为企业其他应用提供稳定的运行平台 2)内建虚拟化技术 3)增强的web

网联:第一章:浏览器生成消息

1.概述: 下面是我画的一张思维导图,作为概述: 2.生成http请求: url有不同的种类,例如常见的http,ftp,mailto,不同的协议标识着他们用于不同的功能,也可以把他们看作一种url功能上的分类.不同的分类有遵守着各自的规则.也就是我们所说的协议. 2-1:那浏览器是如何解析url地址的: url地址是一个字符串,解析的时候会根据特定的字符去拆分,其中"//" 作为一个分隔标识,他前面的标识协议,后面是服务器的名称,服务器后面的 "/",标识文件路径

第一章:Http概述

第一章:Http概述 引言 web浏览器.服务器和相关的web应用程序都是通过http相互通信的,http是现代全球英特网中使用的公共语言. 本章主要内容 1.web客户端与服务器是如何通信的 2.资源(表示web内容)来自何方 3.web事务(请求与响应)是怎样工作的 4.http通信所使用的报文(请求报文/响应报文) 5.底层TCP网络协议 6.不同的http协议变体 1.2web客户端与服务器 web内容都是存储在web服务器上的.web服务器所使用的是http协议,因此也经常称web服务