原创 HTTP协议请求格式及方法

2012-8-17 09:39 4141 17 19 分类: 通信

 

一、HTTP请求格式

当浏览器向Web服务器发出请求时,它向服务器传递了一个数据块,也就是请求信息,HTTP请求信息由3部分组成:

① 请求方法 URI 协议/版本

② 请求头(Request Header)

③ 请求正文

下面是一个HTTP请求的例子:

GET/sample.Jsp HTTP/1.1

Accept:image/gif.image/jpeg,*/*

Accept-Language:zh-cn

Connection:Keep-Alive

Host:localhost

User-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0)

Accept-Encoding:gzip,deflate

 

username=jinqiao&password=1234

 

(1)请求方法URI协议/版本

请求的第一行是“方法URL协议版本”:GET/sample.jsp HTTP/1.1

以上代码中“GET”代表请求方法,“/sample.jsp”表示URI,“HTTP/1.1代表协议和协议的版本。

根据HTTP标准,HTTP请求可以使用多种请求方法。例如:HTTP1.1支持7种请求方法:GET、POST、HEAD、OPTIONS、PUT、DELETE和TARCE。在Internet应用中,最常用的方法是GET和POST。

URL完整地指定了要访问的网络资源,通常只要给出相对于服务器的根目录的相对目录即可,因此总是以“/”开头,最后,协议版本声明了通信过程中使用HTTP的版本。

(2)请求头(Request Header)

请求头包含许多有关的客户端环境和请求正文的有用信息。例如,请求头可以声明浏览器所用的语言,请求正文的长度等。

Accept:image/gif.image/jpeg.*/*

Accept-Language:zh-cn

Connection:Keep-Alive

Host:localhost

User-Agent:Mozila/4.0(compatible:MSIE5.01:Windows NT5.0)

Accept-Encoding:gzip,deflate.

(3) 请求正文

请求头和请求正文之间是一个空行,这个行非常重要,它表示请求头已经结束,接下来的是请求正文。请求正文中可以包含客户提交的查询字符串信息:

username=jinqiao&password=1234

在以上的例子的HTTP请求中,请求的正文只有一行内容。当然,在实际应用中,HTTP请求正文可以包含更多的内容。

四、HTTP请求方法:GET POST

1)GET方法

GET方法是默认的HTTP请求方法,我们日常用GET方法来提交表单数据,然而用GET方法提交的表单数据只经过了简单的编码,同时它将作为URL的一部分向Web服务器发送,因此,如果使用GET方法来提交表单数据就存在着安全隐患上。例如

Http://127.0.0.1/login.jsp?Name=zhangshi&Age=30&Submit=%cc%E+%BD%BB

从上面的URL请求中,很容易就可以辩认出表单提交的内容。(?之后的内容)另外由于GET方法提交的数据是作为URL请求的一部分所以提交的数据量不能太大

2)POST方法

POST方法是GET方法的一个替代方法,它主要是向Web服务器提交表单数据,尤其是大批量的数据。POST方法克服了GET方法的一些缺点。通过POST方法提交表单数据时,数据不是作为URL请求的一部分而是作为标准数据传送给Web服务器,这就克服了GET方法中的信息无法保密和数据量太小的缺点。因此,出于安全的考虑以及对用户隐私的尊重,通常表单提交时采用POST方法。

从编程的角度来讲,如果用户通过GET方法提交数据,则数据存放在QUERY_STRING环境变量中,而POST方法提交的数据则可以从标准输入流中获取。

方法

描述

GET

对服务器资源的简单请求

HEAD

类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头

POST

用于发送包含用户提交数据的请求

PUT

传说当前请求文档的一个版本

DELETE

发送一个用来删除指定文档的请求

TRACE

发送请求的一个副本,以跟踪其处理进程

OPTIONS

返回所有可用的方法;可检查服务器支持哪些方法

CONNECT

用于ssl隧道的基于代理的请求

 

文章评论2条评论)

登录后参与讨论

用户377235 2014-11-6 11:41

电影网站 不错

用户377235 2014-3-15 22:32

相关推荐阅读
用户1591794 2015-01-27 12:49
GPRS流量计算方法(TCP/IP)
 流量统计方法: 一、登陆网络,建立TCP链路 PPP握手阶段大约要来回12~16个PPP握手包,每个包为30字节。30*16=480字节。 TCP连接阶段:40×3=120字节 注册:...
用户1591794 2014-07-18 09:27
Warning[Pa082]:undefined behavior:
IAR编译的时候,出现警告如下: Warning[Pa082]: undefined behavior: the order of volatile accesses is undefined in...
用户1591794 2014-03-21 10:28
Eclipse AVR Windows8.1 Error
...
用户1591794 2013-08-08 09:13
STM32如何进入sleep模式
  STM32如何进入sleep模式 网上说STM32 STOP模式和Standby模式的不少,却很少有人说怎么操作Sleep模式,东西不多,加一个函数而已,废话不多,下面就给出添加的函数...
用户1591794 2013-08-07 06:50
STM32 BOOT0连接不当造成死机
  STM32的三种启动方式依靠BOOT0和BOOT1两个引脚的电平来决定,ST官方推荐的是串联10k电阻然后在接高电平或接地。 理论上这两个引脚只是在启动的时候用来选择启动方式,启动结束...
用户1591794 2013-04-20 21:52
STM32L BOR 应用
BOR功能 是STM32L系列特有的复位和启动电压调整功能。 BOR 关闭时STM32L的供电范围是1.65 V to 3.6 V, BOR 关闭时STM32L的供电范围是1.8 V to...
我要评论
2
17
关闭 站长推荐上一条 /2 下一条