HTTP Method

1.安全方法

HTTP定义了一组被称为安全方法的方法。GET方法和HEAD方法都被认为是安全的,这就意味着使用GET或HEAD方法的HTTP请求都不会产生什么动作。

安全方法并不一定什么动作都不执行(由web开发者决定)

使用安全方法的目的就是当使用可能引发某一动作的不安全方法时,运行HTTP应用程序开发者通知用户。

2.GET方法

通常用于请求服务器发送某个资源。HTTP/1.1实现此方法。

3.HEAD方法

HEAD方法与GET方法的行为很类似,但服务器在响应中只返回首部。不会反回实体的主体部分。这就允许客户端在未获取实际资源的情况下,对资源的首部进行检查。

使用HEAD,可以:

  • 在不获取资源的情况下,了解资源的情况
  • 通过查看响应中的状态码,看看某个对象是否存在
  • 通过查看首部,测试资源是否被修改
  • 服务器开发者必须确保返回的首部与GET请求返回的首部完全相同

4.PUT方法

与GET方法从服务器读取文档相反,PUT方法会向服务器写入文档。有些发布系统允许用户创建WEB页面,并用PUT直接将其安装到WEB服务器上。

5.POST方法

POST方法起初是用来向服务器写入数据的。实际上,通常会用它来支持HTML的表单。表单中填好的数据通常会被发送给服务器,然后服务器将其发送到他要去的地方。

6.TRACE方法

TRACE方法允许客户端在最终将请求发送给服务器时,看看他变成了什么样子。

TRACE请求最终会在目的服务器发起一个回环诊断,行程最后一站的服务器会弹回一条TRACE响应,并在响应主体中携带它收到的原始请求报文。这样客户端就可以查看在所有中间HTTP程序组成的请求响应链上,原始报文是否以及如何被毁坏或修改过。

TRACE方法主要用于诊断

中间应用程序会自行决定对TRACE请求的处理方式

TRACE请求不能带有实体的主体部分。TRACE响应的实体主体部分包含了响应服务器收到的请求的精确副本。

7.OPTIONS方法

OPTIONS方法请求WEB服务器告知其支持的各种功能。

可以询问服务器通常支持哪些方法,或者对某些特殊资源支持哪些方法。

使用OPTIONS方法的请求和响应示例:

请求报文

OPTIONS http://www.cnivi.com.cn/ HTTP/1.1

Accept-Encoding: gzip,deflate

Host: www.cnivi.com.cn

Connection: Keep-Alive

User-Agent: Apache-HttpClient/4.1.1 (java 1.5)

响应报文

HTTP/1.1 200 OK

Server: Apache-Coyote/1.1

Allow: GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, PATCH

Content-Length: 0

Date: Thu, 09 Oct 2014 04:20:09 GMT

8.DELETE方法

DELETE方法所做的事情就是请服务器删除请求URL所指定的资源。

但是客户端应用程序无法保证删除操作一定会执行。因为HTTP规范允许服务器在不通知客户端的情况下撤销请求。

下面是扩展方法(WebDAV HTTP扩展)

9.LOCK方法

允许用户锁定资源,比如可以再编辑某个资源时将其锁定,以防别人同时对其进行编辑。

10.MKCOL方法

允许用户创建资源

11.COPY方法

便于用户在服务器上复制资源

12.MOVE方法

在服务器上移动资源

时间: 2024-08-28 09:08:42

HTTP Method的相关文章

different between method and function

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Arial; color: #242729 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Arial; color: #242729; background-color: #ffffff } span.s1 { background-color: #ffffff } span.s2 { } A method is on an o

关于form表单中method里get和post的区别

在html里form可谓不得不用的一条代码,而form里的method选项里只有get和post两种. 因为我们大多数情况下只有post,所以get和post的区别很容易被遗忘. 简单区别来讲: get提交:提交的数据会在ul上进行提交,明文不加密,不安全,提交的数据有限. Post提交:以form表单封装的方式提交,适合提交大量的数据,相对安全. 虽然我们很少用get,但是我们一定常见到这种方式,只是我们很少注意到罢了. 比如,百度的搜索内容就是用的get方式,我们可以在url上看到我们都提交

fetch 报错 Failed to execute 'fetch' on 'Window': Request with GET/HEAD method cannot have body.

TypeError: Failed to execute 'fetch' on 'Window': Request with GET/HEAD method cannot have body. 在"窗口"上执行"取"失败:GET / get方法的请求不能有正文. GET requests can't have a request body, you can't make them have one. GET requests only retrieve data,

【反射】Class Field Method Constructor

Class public final class java.lang.Class<T> extends Object implements Serializable, GenericDeclaration, Type, AnnotatedElement 类型参数 T:由此 Class 对象建模的类的类型.例如, String.class 的类型是 Class<String>.如果将被建模的类未知,则使用 Class<?>. Instances of the class

设计模式的征途—17.模板方法(Template Method)模式

在现实生活中,很多事情都需要经过几个步骤才能完成,例如请客吃饭,无论吃什么,一般都包含:点单.吃东西.买单等几个步骤,通常情况下这几个步骤的次序是:点单=>吃东西=>买单.在这3个步骤中,点单和买单大同小异,最大的区别在于第2步-吃什么?吃面条和吃满汉全席可大不相同. 在软件开发中,有时候也会遇到类似的情况,某个方法的实现需要多个步骤(类似于“请客”),其中有些步骤是固定的,而有些步骤则存在可变性.为了提高代码复用性和系统灵活性,可以使用一种称之为模板方法模式的设计模式来对这类情况进行设计.

[Angular] HostListener Method Arguments - Blocking Default Keyboard Behavior

We are going to see how to using method arguments for @HostListener. First, we can use HostListener without method arguments: @HostListener('dblclick') toggle(){ this.collapsed = !this.collapsed; } It works fine. But if we need to get the $event obje

Method Tracking

一.能做什么? 直观的看到某个时间段内哪个方法花了多少时间. 二.工作台介绍 非独占时间: 某函数占用的CPU时间,包含内部调用其它函数的CPU时间. 独占时间: 某函数占用CPU时间,但不含内部调用其它函数所占用的CPU时间. 三.如何操作 点击Start Method Tracking, 一段时间后再点击一次, trace文件被自动打开, 我们如何判断可能有问题的方法? 通过方法的调用次数和独占时间来查看,通常判断方法是: 如果方法调用次数不多,但每次调用却需要花费很长的时间的函数,可能会有

MyBatis3.4.0以上的分页插件错误:Could not find method on interface org.apache.ibatis.executor.statement.StatementHandler named prepare. Cause: java.lang.NoSuchMethodException: org.apache.ibatis.executor.stateme

错误: Could not find method on interface org.apache.ibatis.executor.statement.StatementHandler named prepare. Cause: java.lang.NoSuchMethodException: org.apache.ibatis.executor.statement.StatementHandler.prepare(java.sql.Connection)] with root cause 问题

c++ 设计模式8 (Factory Method 工厂方法)

5. "对象创建"类模式 通过"对象创建"类模式绕开new,来避免对象创建(new)过程中所导致的紧耦合(依赖具体类),从而支持对象创建的稳定.它是接口抽象之后的第一步工作. 5.1 工厂方法 动机: 在软件系统中,经常面临着创建对象的工作:由于需求的变化,需要创建的对象的具体类型经常变化. 如何应对这种变化?如何绕过常规的对象创建方法(new),提供一种"封装机制"来避免客户程序和这种"具体对象创建工作"的紧耦合? 代码示例

给对象和函数添加method方法

蝴蝶书中有一个method方法,用来给函数定义方法.看了之后,想着能不能给对象也定义方法呢?. 下面的代码可以实现给函数定义方法: //Function method Function.prototype.method = function (name,func) { this.prototype[name] = func; return this; } 在实现给对象定义方法的过程中,我遇到了一些问题,对象是没有prototype的. 经过思考,用下面的方法实现了给对象定义方法的功能,但是比较繁