网络读书笔记之生成HTTP请求消息

1、浏览器的功能

  • 访问Web服务器
  • 在FTP服务器(File Transfer Protocol)——文件传送协议,使用FTP协议来传送文件的程序也叫FTP,下载和上传文件
  • 具备电子邮件客户端的功能
  • 因为具备的多种功能,所以我们需要用URL来区分浏览器需要使用哪一种功能来访问数据,例如:访问Web服务器用"http:",而访问FTP服务器时用"ftp:"

2、URL元素的解析

  • http: + // + Web服务器名 + / + 目录名 + / … + 文件名
    (协议) (这部分可以忽略)表示数据(文件)的路径名

  • 示例
    http: // www.lab.glasscom.com /dir1/file1.html

省略文件名的几种情况
http: // www.lab.glasscom.com /dir/

该种以"/"为结尾,省略了后边的文件名,如此情况一般访问的是在服务器上事先设置好文件名省略时要访问的默认文件名。这个设置根据服务器的不同而不同,大多数情况下是index.html或者default.htm之类的文        件名

http: // www.lab.glasscom.com/

该种也是以 "/" 结尾,省略了全部文件名,结果就是访问/index.html或者/default.htm这样的文件------“/”目录表示目录层级中最顶层的目录,即为“根目录”。

3、HTTP的基本思路
(1) 客户端向服务器发送请求消息包含的内容:“对什么”和“进行怎样的操作”

“对什么”:称为URI(Uniform Resource Identifer),一般URI中存放网页数据的文件名,例如:/dir1/file1.html 或者是一个CGI程序的文件名,例如:/dir1/program1.cgi

CGI 程序:对Web服务器程序调用其他程序的规则所做的定义

“怎样的操作”:成为方法或者HTTP谓词

GET 方法:获取URI指定的信息      POST方法:从客户端向服务器发送数据     HEAD方法:同GET方法,但只返回HTTP消息的头    OPTIONS方法:通知或查询通信选项
PUT方法:替换URI指定的服务器上的文件。如果URI指定的文件不存在,则创建该文件
DELETE方法:删除URI指定的服务器上的文件   

(2)服务器端收到消息后,对内容进行解析,然后将结果存放在响应消息中
响应消息的开头有一个状态码,用来表示操作的执行结果是成功还是失败。例如:当遇到找不到的文件就会显示出404 Not Found的错误信息
状态码后面就是头字段和网页数据发回。客户端收到后,浏览器从消息中读出所需数据并显示在屏幕上

(3)HTTP两个典型用法
*
GET方法

举例:访问Web服务器获取网页数据时,首先,在请求消息中写上GET方法,然后在URI中协商存放网页数据的文件名“/dir1/file1.html”,当Web服务器收到消息后,会打开文件并读取数据,然后将数据存放到响      应消息中,并返回给客户端。客户端收到数据后显示在屏幕上。
* 

POST方法

举例:网上商城填写收货地址和姓名,遇到带有输入框(等表单)的网页。在请求消息写POST方法,URI指向Web服务器中运行的一个应用程序(用于处理购物订单数据的程序)的文件名。然后再加上传递给应用程      序和脚本的数据(即:用户在输入框里填写的信息)。当服务器收到消息后,Web服务器会将请求消息中的数据发送给URI指定的应用程序。最后,Web服务器从应用程序接收输出的结果,存放到响应消息中并返回      客户端。
* 

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

4、生成HTTP请求消息

第一行:请求行   <方法> <空格> <URI=/<目录名>/.../<文件名>> <空格> <HTTP版本>
 N行:消息头(几行到十几行不等),每行包含一个头字段,表示请求的附加信息:如日期、客户端支持的数据类型、语言、压缩格式、客户端和服务器的软件名称和版本等
      <字段名><字段值>  
      ..........................
      ..........................
      <空行>:什么都不写
      <消息体> 包含客户端向服务器发送的数据

响应消息

第一行:请求行   
    <HTTP版本> <空格> <状态码> <空格> <响应短语>
N行:
    消息头(几行到十几行不等)
      <字段名><字段值>  
      ..........................
      ..........................
      <空行>:什么都不写
      <消息体> 服务器端向客户端发送的数据,例如:从文件中读取的数据,或者CGI应用程序输出的数据等。

状态码概要:状态码是一个数字,它主要用来向程序告知执行的结果,响应短语是一段文字,用来向人们告知执行的结果。两者内容一致

状态码含义
1xx告知请求的处理进度和情况
2xx成功
3xx表示需要进一步操作
4xx客户端错误
5xx服务器错误
 5、返回响应消息后,浏览器会将数据显示在屏幕上,如果网页中包含图片,则浏览器会在显示文字是搜索相应的标签,在屏幕上留出用来显示图片的空间,然后再次访问Web服务器,按照标签中指定的文件名向Web服务器请求获取相应的图片并显示在预留的空间中。步骤和获取网页文件时一样。

注:由于每条请求消息中只能写1个URI,所以每次只能获取1个文件,如果需要获取多个文件,必须对每个文件单独发送1条请求。
例如:1个网页中包含3张图片,那么获取网页加上获取图片,一共需要向Web服务器发送4条请求。且Web服务器根本不关心这4条请求获取的文件到底是1个网页上的还是不同网页上的,它的任务就是对每一条单独的请求返回1条响应而已。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

溜吉放码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值