第一章 浏览器生成信息
1.1 生成HTTP请求信息
1.1.1 URL
Uniform Resource Locator, 统一资源定位符。就是网址。
不同的URL能够用来判断使用哪种功能来访问相应的数据,比如访问Web服务器就要用"http:",而访问FTP服务器用"ftp:"。
- FTP:FileTransferProtocol,文件传送协议。这是一种在上传、下载文件时使用的协议。使用FTP协议来传送文件的程序也被叫作FTP。
1.1.2 解析URL
主要内容包括:协议,要访问的服务器和访问什么文件。
1.1.3 HTTP的基本思路
主要由两部分组成:
- 请求信息
- 响应信息
每条请求信息中只能写一个URI,所以每次只能获取一个文件,如果需要获取多个文件,必须对每个文件单独发送一条请求。
1.1.3.1 请求信息
由两部分组成:
- 对什么进行请求
- 进行怎样的操作
"对什么请求"部分称为URI,一般来说,URI的内容是一个存放网页数据的文件名或者是一个CGI程序的文件名,是访问目标的统称。格式为 /<目录名>/.../<文件名>
。因为路径名一般都包含在URL中,因此只要从URL提取出来写上去就行。
-
URI: Uniform Resource Identifier,统一资源标识符。
CGI程序:对Web服务器程序调用其他程序的规则所做的定义就是CGI。
"进行怎样的操作"的部分称为方法,方法表示让Web服务器完成怎样的操作,比如读取URI表示的数据、将客户端输入的数据发送给URI表示的程序等。下面是一些HTTP的主要方法。
常用的方法是GET和POST,GET多用于访问Web服务器获取网页数据时;POST多用于在表单中填写数据并将其发送给Web服务器时。因为GET方法能够发送的数据只有几百个字节,如果表单的数据超过这一长度,则必须使用POST方法来请求。
除该两种部分,还有一些还有一些用来表示附加信息的头字段。客户端向 Web 服务器发送数据时,会先发送头字段,然后再发送数据。
请求信息的格式
- 请求行
- 信息头
- 信息体
请求行可以大致了解请求的内容,包含方法、URI和HTTP版本,大致可以清楚向谁(URI)进行怎样的操作(方法)。
信息头是对请求内容进行更为详细的补充。
信息体就是想向服务端发送的信息,比如账号密码,一般和POST请求匹配使用,将表单中的信息发送给服务端。
1.1.3.2 响应信息
和请求信息大致相同,只不过不是请求行,而是状态行,内容为HTTP版本、状态码和响应短语。状态码为一个数字,用来告知程序执行的结果;响应短语则是一段文字,用来向人们告知执行的结果。
返回响应信息后,就可以得到请求信息对应的结果,如果无错误,则正常显示在浏览器上。为文字时,则该对信息全部处理完毕,如果还包含图片等资源,则还有下文。
当有图片时,网页中相应位置嵌入表示图片文件的标签(<img src = "image1.jpg>
)的控制信息。浏览器在读到该标签时,会在屏幕上留出来显示图片的空间,然后再次访问Web服务器,按照按照标签中指定的文件名向 Web 服务器请求获取相应的图片并显示在预留的空间中。这个步骤和获取网页文件时一样,只要在 URI 部分写上图片的文件名并生成和发送请求消息就可以了。
且因为每次请求只能获取一个文件,所以遇到图片时还要对存在的图片进行的请求。