Http中的safe规范

safe : 如果HTTP方法不更改服务器状态,它就是安全的。
换句话说,如果方法导致只读操作,就是安全的

几种常见的HTTP方法都是安全的:GET、HEAD、OPTIONS。

和幂等的关系:
所有安全方法也都是幂等的,但并非所有幂等方法都是安全的。
例如,PUT和DELETE都是幂等但不安全。(put往服务器上)
(幂等指的是相同的请求发出多次时,服务器的响应是一样的,详见幂等的定义)

即使安全方法具有只读语义,服务器也可以更改其状态:例如,它们可以记录或保留统计信息。这里重要的是,通过调用安全方法,客户端不会请求任何服务器本身更改,不会给服务器造成不必要的负载或负担。浏览器在调用安全方法的时候不需要担心会对服务器造成任何伤害。

安全方法不需要仅提供静态文件;只要生成脚本能够确保安全,服务器就可以即时生成安全方法的答案
正确实现安全语义是服务器上应用程序的责任,Web服务器本身(无论是Apache,Nginx还是IIS)都不能单独实施。

调用安全方法,不更改服务器状态:

GET /pageX.html HTTP/1.1

调用非安全方法可能会更改服务器状态:

POST /pageX.html HTTP/1.1 

调用幂等但不安全的方法:

DELETE /idX/delete HTTP/1.1
发布了84 篇原创文章 · 获赞 9 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Mercuriooo/article/details/103599520