HTTP请求消息格式

HTTP请求消息格式

HTTP消息格式

HTTP规范1.0[RPcl945]和1.1[RFC 2616]定义了HTTP消息的格式。

HTTP消息分为两类

一、请求消息

二、响应稍息

下面先介绍请求消息。

(1)请求消息的第一行称为请求行 (request line)

      请求行有3个宁段:方法字段URL字段HTTP版本宇段

      方法字段有若干个值可供选择,包括 GET、POST和HEAD。HTTP请求消息绝大多数使用GET方法,这是浏览器用来请求对象的方法,所请求的对象就在URL字段中标识。

(2)后续各行都称为头部行(header)


eg:下面是一个典型的HTTP请求消息:

GET /somedir/page.html HTTP/1.1
Host:www.chinaitlab.com
Connection:close
User-agent:Mozilla/4.0
Accept-language:zh-cn

(额外的回车符和换行符)

首先,这个消息是用普通的ASCII文本书写的。             其次,这个消息共有5行

每行以一回车符和一换行符结束,最后一行后面还有额外一回车特和换行符。当然,一请求消息可以不止这么多行,也可以仅仅只有一行。现在看本例

(1)请求行

本例表明浏览器在请求对象/somedir/page.html。版本字段是不言自明的;本例中浏览器实现的是HTTP/1.1版本。

(2)头部行

头部行Host:www.chinaitlab.com定存放所请求对象的主机。

请求消息中包含头部Connection: close是在告知服务器本浏览器不想使用持久连接;服务器发出所请求的对象后应关闭连接。尽管产生这个请求消息的浏览器实现的是HTTP/1.1版本,它还是不想使用持久连接。

User-agent头部行指定用户代理,也就是产生当前请求的浏览器的类型。本例的用户代理是Mozilla/4.0,它是 Nelscape浏览器的一个版本。这个头部行很有用,因为服务器实际上可以给不同类型的用户代理发送同一个对象的不同版本(这些不同版本位用同一个 URL寻址)。

最后,Accept-languag:头部行指出要是所请求对象有简体中文版本,那么用户宁愿接收这个版本;如果没有这个语言版本,那么服 务器应该发送其默认版本。Accept-languag:仅仅是HTTP的众多内容协商头部之一

上面的请求消息例子符合这个格式,不过一般格式中还有一个位于各个头部(及额外的回车符和换行符)之后的“附属体”(毗叮body)

      附属体不在GET 方法中使用,而是在POST方法中使用。

      POST方法适用于需由用户填写表单的场合,如往google搜索引擎中填入待搜索的词。用户提交表单后,浏览器就像用户点击了超链接那样仍然从服务器请求一个Web页面,不过该页面的具体内容却取决于用户填写在表单各个字段中的值。如果浏览器使用POST方法提出该请求,那么请求消息附属体中包含的是用户填写在表单各个字段中的值。

     HEAD方法:与GET方法类似,两者的差别只是服务器在对HEAD方法的响应消息中去掉了所请求的对象,其他内容则与对GET方法的响应消息一样。HEAD方法通常用于HTTP服务器软件开发人员进行调试。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HTTP请求和响应消息都是由三个部分组成:起始行、消息头和消息体。下面分别介绍HTTP请求和响应消息格式: 1. HTTP请求消息格式 HTTP请求消息格式如下: ``` Method Request-URI HTTP-Version Headers Message Body ``` 其中,Method表示请求方法(如GET、POST、PUT等),Request-URI表示请求的资源标识符,HTTP-Version表示HTTP协议的版本号,Headers是一些请求头信息,Message Body是请求消息的主体内容。 举个例子,如果要请求一个网页,请求消息可以这样构造: ``` GET /index.html HTTP/1.1 Host: www.example.com User-Agent: Mozilla/5.0 Accept: text/html,application/xhtml+xml ``` 其中,GET表示请求方法为GET,/index.html表示请求的资源为网站首页,HTTP/1.1表示使用HTTP协议的版本为1.1,Host表示请求的主机名为www.example.com,User-Agent表示浏览器类型为Mozilla/5.0,Accept表示可接受的响应类型为text/html、application/xhtml+xml等。 2. HTTP响应消息格式 HTTP响应消息格式如下: ``` HTTP-Version Status-Code Reason-Phrase Headers Message Body ``` 其中,HTTP-Version表示HTTP协议的版本号,Status-Code表示请求处理的状态码,Reason-Phrase表示状态码对应的原因短语,Headers是一些响应头信息,Message Body是响应消息的主体内容。 举个例子,如果服务器返回一个网页,响应消息可以这样构造: ``` HTTP/1.1 200 OK Date: Thu, 01 Jul 2021 06:17:30 GMT Server: Apache/2.2.22 Content-Type: text/html;charset=utf-8 <!DOCTYPE html> <html> <head> <title>My Web Page</title> </head> <body> <!-- 页面内容 --> </body> </html> ``` 其中,HTTP/1.1表示使用HTTP协议的版本为1.1,200表示响应处理的状态码为200,OK表示状态码对应的原因短语为“OK”。Date表示响应的时间,Server表示服务器类型为Apache/2.2.22,Content-Type表示响应的内容类型为text/html;charset=utf-8。Message Body中的内容是HTML文档,用于显示网页的内容。 以上是HTTP请求和响应消息格式,HTTP协议还有很多其他的特性和功能,需要根据具体的应用场景进行了解和学习。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值