告知服务器意图的HTTP方法(读书笔记)

2023-10-10 16:20

本文主要是介绍告知服务器意图的HTTP方法(读书笔记),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


GET:获取资源

GET方法用来请求访问已被URI识别的资源。指定的资源经过服务器端解析后返回响应内容,也就是说,如果请求的资源是文本,那就保持原样返回;如果是像CGI(Common Gateway interface,通用网关接口)那样的程序,则返回经过执行后的输出结果。

使用GET方法的请求~响应的例子
请求GET /index.html HTTP/1.1 Host:www.dafada.jp
响应返回index.heml的页面资源
请求GET /index.html HTTP/1.1 Host:www.dafada.jp If-Modified-Since: Thu ,12 Jul 2016 08:30:00 GMT
响应仅返回2012年7月12日七点三十分以后更新过的index.html页面资源。如果未有内容更新,则以状态吗304 Not Modified作为响应返回

POST:传输实体主体

POST方法用来传输实体的主体
虽然用GET方法也可以传输实体的主体,但一般不用GET方法进行传输,而是用POST方法,虽说POST的功能与GET方法很相似,但是POST的主要目的并不是获取响应的主体内容。

使用POST方法的请求~响应的例子
请求POST /submit.cgi HTTP/1.1 Host:www.dafada.jp Content-Length:1560(1560字节的数据)
响应返回submit.cgi接受数据的处理结果

PUT:传输文件

PUT方法用来传输文件,就像FTP协议的文件上传一样,要求在请求报文的主题中包含文件内容,然后保存到请求的URI指定的位置。
但是鉴于HTTP/1.1的PUT方法自身不带验证机制,任何人都可以上传文件,存在安全性问题,因此一般的Web网址不使用该方法。若配合Web应用程序的验证机制,活架构设计采用REST(Representational State Transfer 表征状态转移)标准的同类的Web网址,就可能会开放使用PUT方法

使用PUT方法的请求~响应的例子
请求PUT /index.html HTTP/1.1 Host:www.dafada.jp Content-Type:text/html Content-Length:1560(1560字节的数据)
响应响应返回状态吗204 Not Content(比如:该html已经存在于服务器上)

HEAD:获取报文首部

HEAD方法和GET方法一样,只是不返回报文主体部分,用于确认URI的有效性及资源更新的日期时间等

使用HEAD方法的请求~响应的例子
请求HEAD /index.html HTTP/1.1 Host:www.dafada.jp
响应返回index.html有关的响应首部

DELETE:删除文件

DELETE方法用来删除文件,是与PUT相反的方法,DELETE方法按请求URI删除指定的资源
但是,HTTP/1.1的DELETE方法本身和PUT方法一样不带有验证机制,所以一般的Web网站也不使用DELETE方法,并配合Web应用缓存层序的验证机制,或者遵守REST标准时还是有可能会开放使用的。

使用DELETE方法的请求~响应的例子
请求DELETE /index.html HTTP/1.1 Host:www.dafada.jp
响应响应返回状态码204 No Content(比如:该html已经从该服务器上删除)

OPTIONS:询问支持的方法

OPTIONS方法用来查询针对请求URI指定的资源支持的方法

使用OPTIONS方法的请求~响应的例子
请求OPTIONS * HTTP/1.1 Host:www.dafada.jp
响应HTTP/1.1 200OK Allow:GET/POST/HEAD/OPTIONS(返回服务器支持的方法)

TRACE:追中路径

TRACE方法是让Web服务器端将之前的请求通信环回给客户端的方法
发送请求的时候,在Max-Frowards首部字段中填入数值,每经过一个服务器端就讲该数字减一,当数值刚好减为0的时候,就停止继续传输,最后接受到请求的服务器端则返回状态码200 OK的响应
客户端通过TRACE方法可以查询发送出去的请求是怎样被加工修改/篡改的,这是因为,请求想要链接到源目标服务器可能会通过代理中转,TRACE方法就是用来确认连接过程中发生的一系列操作。
但是TRACE方法本来就不怎么使用,而且加上它容易引发XST(Cross-Site Tracing 跨站追中)攻击,通常就更不会用到了

使用TRACE方法的请求~响应的例子
请求TRACE /HTTP/1.1 Host:www.dafada.jp Max-Forwards:2
响应HTTP/1.1 200OK Content-Type:message/http Content-Length:1024 TRACE /HTTP/1.1 Host:www.dafada.jp Max-Forwards:2(返回响应包含请求内容)

CONNECT:要求用隧道协议连接代理

CONNECT方法要求在于代理服务器通信时候建立隧道,实现用隧道协议进行TCP通信,主要使用SSL(Secure Sockets Layer,安全套接层)和TLS(Transport Layer Security 传输层安全)协议把通信内容加密后经网络隧道传输

使用CONNECT方法的请求~响应的例子
请求CONNECT proxy.hackr.jp:8080 /HTTP/1.1 Host:www.dafada.jp
响应HTTP/1.1 200OK (之后进入网络隧道)

这篇关于告知服务器意图的HTTP方法(读书笔记)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/181629

相关文章

PHP轻松处理千万行数据的方法详解

《PHP轻松处理千万行数据的方法详解》说到处理大数据集,PHP通常不是第一个想到的语言,但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道PHP用对了工具有多强大,下面小编就... 目录问题的本质php 中的数据流处理:为什么必不可少生成器:内存高效的迭代方式流量控制:避免系统过载一次性

Nginx部署HTTP/3的实现步骤

《Nginx部署HTTP/3的实现步骤》本文介绍了在Nginx中部署HTTP/3的详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前提条件第一步:安装必要的依赖库第二步:获取并构建 BoringSSL第三步:获取 Nginx

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

JavaScript中的高级调试方法全攻略指南

《JavaScript中的高级调试方法全攻略指南》什么是高级JavaScript调试技巧,它比console.log有何优势,如何使用断点调试定位问题,通过本文,我们将深入解答这些问题,带您从理论到实... 目录观点与案例结合观点1观点2观点3观点4观点5高级调试技巧详解实战案例断点调试:定位变量错误性能分

Python中 try / except / else / finally 异常处理方法详解

《Python中try/except/else/finally异常处理方法详解》:本文主要介绍Python中try/except/else/finally异常处理方法的相关资料,涵... 目录1. 基本结构2. 各部分的作用tryexceptelsefinally3. 执行流程总结4. 常见用法(1)多个e

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

504 Gateway Timeout网关超时的根源及完美解决方法

《504GatewayTimeout网关超时的根源及完美解决方法》在日常开发和运维过程中,504GatewayTimeout错误是常见的网络问题之一,尤其是在使用反向代理(如Nginx)或... 目录引言为什么会出现 504 错误?1. 探索 504 Gateway Timeout 错误的根源 1.1 后端

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python