http

来源:互联网 发布:java中文文档 编辑:程序博客网 时间:2024/06/06 17:07

下面哪些http请求对于服务器和客户端一定是安全的?
1.GET
2.HEAD
3.TRACE
4.OPTIONS
5.POST

5吗?


1、http方法
HTTP超文本传输协议(HyperText Transfer Protocol)是一个设计来使客户端和服务器顺利进行通讯的协议。
HTTP在客户端和服务器之间以request-response protocol(请求-回复协议)工作。

2、GET方法
GET - 从指定的服务器中获取数据
GET方法:
使用GET方法时,查询字符串(键值对)被附加在URL地址后面一起发送到服务器:

/test/demo_form.jsp?name1=value1&name2=value2

特点:

  • GET请求能够被缓存
  • GET请求会保存在浏览器的浏览记录中
  • 以GET请求的URL能够保存为浏览器书签
  • GET请求有长度限制
  • GET请求主要用以获取数据

3、POST方法
POST - 用来向服务器上传递数据
POST方法:
使用POST方法时,查询字符串在POST信息中单独存在,和HTTP请求一起发送到服务器:

POST /test/demo_form.jsp HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2

特点

  • POST请求不能被缓存下来
  • POST请求不会保存在浏览器浏览记录中
  • 以POST请求的URL无法保存为浏览器书签
  • POST请求没有长度限制

3、GET和POST的区别:

  • 1、Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据。

  • 2、Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接;Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL。

  • 3、Get是不安全的,因为在传输过程,数据被放在请求的URL中,而如今现有的很多服务器、代理服务器或者用户代理都会将请求URL记录到日志文件中,然后放在某个地方,这样就可能会有一些隐私的信息被第三方看到。另外,用户也可以在浏览器上直接看到提交的数据,一些系统内部消息将会一同显示在用户面前。Post的所有操作对用户来说都是不可见的。

  • 4、Get传输的数据量小,这主要是因为受URL长度限制;而Post可以传输大量的数据,所以在上传文件只能使用Post(当然还有一个原因,将在后面的提到)。

  • 5、Get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集。默认是用ISO-8859-1编码

  • 6、Get是Form的默认方法。

4、HEAD
HEAD 与GET请求类似,不同在与服务器只返回HTTP头部信息,没有页面内容。HEAD请求常常被忽略,但是能提供很多有用的信息,特别是在有限的速度和带宽下。主要有以下特点:
1、只请求资源的首部;
2、检查超链接的有效性;
3、检查网页是否被修改;
4、多用于自动搜索机器人获取网页的标志信息,获取rss种子信息,或者传递安全认证信息等

5、TRACE
TRACE: 请求服务器在响应中的实体主体部分返回所得到的内容。

6、OPTIONS
返回服务器支持的HTTP方法。允许客户端查看服务器的性能。

用于请求获得由Request-URI标识的资源在请求/响应的通信过程中可以使用的功能选项。通过这个方法,客户端可以在采取具体资源请求之前,决定对该资源采取何种必要措施,或者了解服务器的性能。
该请求方法的响应不能缓存。
如果该URI是一个星号(“”),OPTIONS请求将试图应用于服务器,而不是某个指定资源。由于服务器的通信选项通常依赖于资源,所以此“”请求只能作为“ping”或者“no-op”方法;或者用来测试服务器的性能。例如,用来测试HTTP/1.1代理。
如果该URI不是星号,则只能用来获取该资源通信中可用的选项。
得到的200响应应该包含一个头域,指明服务器实现的和适用于该资源的可选特征(如:Allow),可能还包括该规范尚未定义的扩展。如果有响应正文,则应包含关于通信选项的信息。本规范没有定义该正文格式,但可能在HTTO将来的扩展中定义。可以利用内容协商来选择合适的响应格式。如果没有响应正文,响应必须包含Content-Length,并且值为“0”。
请求头的Max-Forwards用来请求特定代理。当代理收到一个允许URI转发的OPTIONS请求,则检查Max-Forwards。如果Max-Forwards值为0,则不能转发该消息;相反,代理会将自己的通信选项去响应。如果Max-Forwards是正整数,代理转发请求的时候会将该值减1。如果请求中没有Max-Forwards,转发的请求也不会有

7、PUT
上传指定URL的描述。从客户端向服务器传送的数据取代指定的文档的内容。

8、DELETE
删除指定资源。 请求服务器删除指定的页面。

9、CONNECT
转换为透明TCP/IP隧道的连接请求

10、其他
PATCH: 实体中包含一个表,表中说明与该URI所表示的原内容的区别。
MOVE: 请求服务器将指定的页面移至另一个网络地址。
COPY: 请求服务器将指定的页面拷贝至另一个网络地址。
LINK: 请求服务器建立链接关系。
UNLINK: 断开链接关系。
WRAPPED: 允许客户端发送经过封装的请求。
Extension-mothed:在不改动协议的前提下,可增加另外的方法。

参考:
[1]http://www.cnblogs.com/igeneral/p/3641574.html
[2]http://wenku.baidu.com/link?url=B0kPlFm9swK-sVwFExU7VOxuJGOs8S7iD7yJVc347XPXgC4HzHXi4jn9C9q-BxT6AcXoarR6-YLTW-aw2qvGHVT6Xm43dBM3DnL2kuQ8Pn7
[3]http://blog.sina.com.cn/s/blog_6bdc4c220100tdeb.html

0 0
原创粉丝点击