http请求方法

来源:互联网 发布:手机淘宝模板免费 编辑:程序博客网 时间:2024/06/05 06:12

http请求方法

请求方法:

请求方法:指定了客户端想对指定的资源/服务器作何种操作,HTTP协议的请求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。

1. get请求

最常用于向服务器查询某些信息。必要时,可以将查询字符串参数追加到URL末尾,以便将信息发送给服务器。

使用GET请求时经常会发生的一个错误,就是查询字符串的格式有问题。查询字符串中每个参数的名称和值都必须使用encodeURLComponent()进行编码,然后才能放到URL的末尾;而且所有的名-值对都必须由(&)分离。

这种方式不适合传送私密数据。另外,由于不同的浏览器对地址的字符限制也有所不同,一般最多只能识别1024个字符,所以如果需要传送大量数据的时候,也不适合使用GET方式。

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

2. post请求

POST方法用来传输实体的主体。主要是向Web服务器提交表单数据,尤其是大批量的数据。

POST方法将请求参数封装在HTTP请求数据中,以名称/值的形式出现,可以传输大量数据,这样POST方式对传送的数据大小没有限制,而且也不会显示在URL中。

OST方式请求行中不包含数据字符串,这些数据保存在”请求内容”部分,各数据之间也是使用”&”符号隔开。POST方式大多用于页面的表单中。因为POST也能完成GET的功能,因此多数人在设计表单的时候一律都使用POST方式,其实这是一个误区。GET方式也有自己的特点和优势,我们应该根据不同的情况来选择是使用GET还是使用POST。

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

3.其他请求方法

HTTP Request Method列表:

序号 方法 描述 1 HEAD HEAD方法和GET方法一样,只是不返回报文的主体部分,用于确认URI的有效性及资源更新的日期时间等。 具体来说:1、判断类型; 2、查看响应中的状态码,看对象是否存在(响应:请求执行成功了,但无数据返回); 3、测试资源是否被修改过HEAD方法和GET方法的区别: GET方法有实体,HEAD方法无实体 2 CONNECT CONNECT方法要求在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信。主要使用SSL(安全套接层)和TLS(传输层安全)协议把通信内容加密后经网络隧道传输。(HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。) 3 OPTIONS 返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向Web服务器发送’*’的请求来测试服务器的功能性。 4 PUT 向指定资源位置上传其最新内容。 PUT方法用来传输文件,就像FTP协议的文件上传一样,要求在请求报文的主体中包含文件内容,然后保存在请求URI指定的位置。但是HTTP/1.1的PUT方法自身不带验证机制,任何人都可以上传文件,存在安全问题,故一般不用。 5 DELETE 指明客户端想让服务器删除某个资源,与PUT方法相反,按URI删除指定资源.该方法就是通过http请求删除指定的url上的资源,Delete请求一般返回3种码:200(ok)-删除成功,同时返回已经删除的资源202(Accepted)-删除请求已经接受,但没有被立即执行(资源也许已经被转移到了待删除区域)204(No Content)-删除请求已经被执行,但是没有返回资源(也许是请求删除不存在的资源造成的) 6 TRACE 客户端可以对请求消息的传输路径进行追踪,TRACE方法是让Web服务器端将之前的请求通信还给客户端的方法。(回显服务器收到的请求,主要用于测试或诊断。) 7 MOVE 请求服务器将指定的页面移至另一个网络地址。 8 COPY 请求服务器将指定的页面拷贝至另一个网络地址。 9 LINK 请求服务器建立链接关系。 10 UNLINK 断开链接关系 11 WRAPPED 允许客户端发送经过封装的请求。 12 Extension-mothed 在不改动协议的前提下,可增加另外的方法。

4.请求方法的区别

GET和POST的区别:

 1、GET方法用于信息获取,它是安全的(安全:指非修改信息,如数据库方面的信息),而POST方法是用于修改服务器上资源的请求;

 2、GET请求的数据会附在URL之后,而POST方法提交的数据则放置在HTTP报文实体的主体里,所以POST方法的安全性比GET方法要高;

3、GET方法传输的数据量一般限制在2KB,其原因在于:GET是通过URL提交数据,而URL本身对于数据没有限制,但是不同的浏览器对于URL是有限制的,比如IE浏览器对于URL的限制为2KB,而Chrome,FireFox浏览器理论上对于URL是没有限制的,它真正的限制取决于操作系统本身;POST方法对于数据大小是无限制的,真正影响到数据大小的是服务器处理程序的能力。

GET和POST的对比列表:

对比项 GET POST 点击返回/刷新按钮 没有影响 数据会重新发送(浏览器将会提示用户“数据被从新提交”) 添加书签 可以 不可以 缓存 可以 不可以 编码类型(Encoding type) application/x-www-form-urlencoded application/x-www-form-urlencoded or multipart/form-data. 请为二进制数据使用multipart编码 历史记录 有 没有 长度限制 有 没有 数据类型限制 只允许ASCII字符类型 没有限制。允许二进制数据 安全性 查询字符串会显示在地址栏的URL中,不安全,请不要使用GET请求提交敏感数据 因为数据不会显示在地址栏中,也不会缓存下来或保存在浏览记录中,所以看POST求情比GET请求安全,但也不是最安全的方式。如需要传送敏感数据,请使用加密方式传输 可见性 查询字符串显示在地址栏的URL中,可见 查询字符串不会显示在地址栏中,不可见

PATCH和PUT的区别:

对比项 PATCH POST 对已有资源的操作: 用于资源的部分内容更新,比如一个字段:具体的比如说只更新用户信息的电话号码字段 用于更新某个资源较完整的内容,比如说用户要填完整表单更新所有的信息后台处理更新时可能只是保留内部记录ID不变 当资源不存在时: 联想到版本控制PATCH是修改原来的内容也可能会产生一个新的版本,比如当资源不成在的时候,PATCH可能去创建一个新的资源,像是saveOrUpdate操作 只能对已有资源进行更

引用:
http://blog.csdn.net/jiadabin/article/details/51919216
http://blog.csdn.net/zhangliang_571/article/details/23508953
http://blog.csdn.net/u010256388/article/details/68491509

原创粉丝点击