乐考论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 368|回复: 3

[其他相关] HTTP请求的8中方法浅析

[复制链接]
发表于 2016-12-17 11:00:56 | 显示全部楼层 |阅读模式
HTTP8种请求方法概述
HTTP协议中共定义了八种方法或者叫“动作”get,post,put, options,head,delete,trace,connect,来表明对Request-URI指定的资源的不同操作方式,具体介绍如下:

OPTIONS:返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向Web服务器发送’*’的请求来测试服务器的功能性。
HEAD:向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。
GET:向特定的资源发出请求。
POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的创建和/或已有资源的修改。
PUT:用于向服务器发送请求,如果URI不存在,则要求服务器根据请求创建资源,如果存在,服务器就接受请求内容,并修改URI的原始版本
DELETE:请求服务器删除Request-URI所标识的资源。
TRACE:回显服务器收到的请求,主要用于测试或诊断。
CONNECT:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
回复

使用道具 举报

 楼主| 发表于 2016-12-17 11:01:50 | 显示全部楼层
<LimitExcept GET POST>
  Order Allow,Deny
  Deny from all
</LimitExcept>

禁用 HEAD PUT DELETE TRACE OPTIONS
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-17 11:03:05 | 显示全部楼层

上述方法中最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。上述内容讲的有些粗略,下面具体的就get、post和options来进行详细的介绍:

Get请求和post请求get请求
  • 一般来讲get请求是用来信息获取的,它只会获取资源,并不会对资源进行更改,不会影响资源的状态。
  • get请求一般是以查询字符串的形式附在URL里,如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII。因此,存在一定的安全隐患
  • get提交的数据有大小限制,因为GET是通过URL提交数据,那么GET可提交的数据量就跟URL的长度有直接关系了。而实际上,URL不存在参数上限的问题,HTTP协议规范没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持。(这一点相信很多人都一直以为是2k的限制,其实并不是啊)
post请求
  • 根据HTTP规范,POST表示可能修改变服务器上的资源的请求。
  • Post是将表单中的数据放在form的数据体中,表单中的参数值对是通过request body发送给服务器,Post的所有操作对用户来说都是不可见的。
  • 理论上POST没有限制,可传较大量的数据
二者区别

这是一个面试的时候经常会被问到的一个问题,区别如下(个人认为):
1. get提交,数据放在url里面,所以数据是在浏览器可见的,不安全,而post提交是放在请求头中,用户不可见,所以比较安全;
2. 请求数据的大小,get有一定限制,而post可发送的数据没有限制
3. get一般用来请求数据,不会对数据进行更改,而post用于发送数据,会对数据进行修改
post请求


                               
登录/注册后可看大图

w3school上总结的一个表


                               
登录/注册后可看大图


回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-17 11:05:21 | 显示全部楼层
options请求

官方定义:options方法用于请求获得由request-URI标识的资源在请求/响应的通信过程中可以使用的功能选项。通过这个方法,客户端可以在采取具体资源请求之前,决定对该资源采取何种必要措施,或了解服务器的性能。

主要用途:
1. 获取服务器支持的HTTP请求方法;
2. 用来检车服务器的性能,例如,进行AJAX跨域请求时的预检,需要向另一个域名的资源发送一个HTTP options 请求头,用以判断实际发送的请求是否安全。


                               
登录/注册后可看大图

get,put,post,delete
  • get请求会向数据库发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改、增加数据,不会影响资源的内容,即该请求不会产生副作用。无论进行多少次操作,结果都是一样的。
  • put 是向服务器端发送数据的,从而改变信息,该请求就像数据库的update操作一样,用来修改数据的内容,但是不会增加数据的种类等,也就是说无论进行多少次PUT操作,其结果并没有不同。
  • post同PUT请求类似,都是向服务器端发送数据的,但是该请求会改变数据的种类等资源,就像数据库的insert操作一样,会创建新的内容。几乎目前所有的提交操作都是用POST请求的。
  • delete就是用来删除某一个资源的,该请求就像数据库的delete操作。

回复 支持 反对

使用道具 举报

快速回复 返回顶部 返回列表
鲁ICP备16044790-1号 Copyright © 2008-2020 乐考网(www.5Lekao.com) 版权所有
| QQ| 乐考论坛