计算机网络自顶向下方法学习笔记 Http报文格式

http 报文分为两种:一种为请求报文,另一种为响应报文
1.HTTP请求报文
下面是一个典型的http请求报文:

GET /somedir/page.html HTTP/1.1
Host:www.someschool.edu
Connection:close
User-agent:Mozilla/4.0
Accept-language:fr

该报文是使用普通的ASCLII文本书写的,该报文含有五行,HTTP请求报文的第一行叫做请求行(request line)
其后继的行叫做首部行,请求行有三个字段:方法字段,URL字段和HTTP协议版本字段。方法字段可以取值GET,POST,HEAD,PUT和DELETE。绝大部分的HTTP请求报文使用GET方法,当浏览器请求一个对象时,使用GET方法,在URL字段填写该对象的URL地址。该例子中为/somedir/page.html ,紧随其后的为版本字段。
再看看本例的首部行Host:www.someschool.edu,定义了目标所在的主机(该首部行所提供的信息时web高速缓存所要求的)。
Connnection:close首部行,浏览器告诉服务器不希望使用持久连接,要求服务器在发送完请求对象后就关闭连接。
user-agent:首部行用来定义用户代理,即向服务器发送请求的浏览器类型。这里的浏览器类型时Mozilla/4.0,即Netscape浏览器(与ie浏览器是竞争对手)。
Accept-language:fr 表示用户想要用该对象的法语版本。
请求报文的通用格式如下图所示,
在这里插入图片描述
在首部行后有一个实体主体,使用get方法是主体为空,而使用POST方法时,实体主体包含就是用户在表单字段输入的值。
HEAD方法类似于GET方法,当服务器收到使用HEAD方法的请求时,会用一个HTTP报文进行响应,但并不返回请求对象,通常用于故障跟踪。
DELETE方法用于删除web服务器上的对象。
2.HTTP响应报文
下面是一个典型的HTTP响应报文,可以说是对上面请求报文的响应:

HTTP/1.1 200 OK
Connection:close
Date:Thu,03 Jul 2003 12:00:15 GMT
Server: Apache/1.3.0(Unix)
Last-Modified: sun, 6 May 2007 09:23:24 GMT
Content-Length:6821
Content-Type:text/html

仔细看一下响应报文,分为三个部分:
一个是初始状态行,6个首部行,然后是实体主体。实体主体部分是报文的主体,即包含了所请求的对象本身。状态行有3个字段,协议版本,状态码和相应状态信息。
服务器用Connection:close首部行告诉客户机报文发送完毕后关闭TCP连接,
Date:首部行指示服务器产生并发送该响应报文的日期和时间。
值得一提的是,这个时间不是指对象创建或最后修改的时间
Server:首部行表明该报文是由Apache web服务器所产生的,类似于HTTP请求报文中的User-agent
Last-Modified:首部行指示了对象创建或者最后修改的日期和时间。
content-length:首部行表明了被发送对象的字节数。
content-Type:首部行指示了实体主体的对象是HTML文本。
在这里插入图片描述
响应报文的状态:

  • 200 Ok:请求成功,信息包含在返回的报文中
  • 301 Moved permanently:请求的对象已经被永久转移了,新的URL定义在响应报文的Location
  • 400 Bad Request:一个通常差错代码,指请求不能被服务器理解。
  • 404 Not Found: 被请求的文档不在服务器上。
  • 505 Http version Not Supported:服务器不支持请求的报文使用的HTTP协议版本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值