2.3 告知服务器意图的HTTP方法以及使用方法下达命令

2023-12-26 00:32

本文主要是介绍2.3 告知服务器意图的HTTP方法以及使用方法下达命令,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本节我们主要介绍HTTP1.1中可使用的方法,方法的作用在于,可以指定请求的资源按期望产生某种行为。


首先下面我们通过一张图片来简单了解一下HTTP各种方法的功能。

                                         

......................................................

然后我们通过举例来详细介绍一下各种方法的使用:


1.GET:获取资源

           GET方法用来请求访问已被URI识别的资源,指定的资源经服务器端解析后返回响应内容。

            使用GET方法请求响应举例:

           (1)

            请求:   GET /index.html HTTP/1.1

                            Host:www.hacker.jp

            响应:   返回 index.html的页面资源

           (2)

            请求:  GET /index.html HTTP/1.1

                          Host: www.hacker.jp

                          if-Modified-since: Thu, 12 Jul 2012 07:30:00 GMT

             响应:  仅返回2012年7月12日7点30分以后更新过的index.html页面资源。如果未有内容更新,则以状态码304 Not Modified 作为相应返回。

2.POST:传输实体主体

             POST方法用来传输实体的主体。

             使用POST方法请求响应举例:

             请求:  POST /submit.cgi HTTP/1.1

                           Host: www.hacker.jp

                           Content-Length: 1560(1560字节的数据)

              响应: 返回 submit.cgi 接收数据的处理结果。

3.PUT: 传输文件

              PUT方法用来传输文件,要求在请求报文的主体中包含文件内容,然后保存到请求URI指定的位置。

              使用PUT方法请求响应举例:

               请求:   PUT /example.html HTTP/1.1

                              Host: www.hacker.jp

                              Content-Type: text/html

                              Content-Length: 1560 (1560字节的数据)

                响应: 响应返回状态码 204 No Content (比如: 该html文件已存在于服务器上)

                该响应的意思是请求执行成功了,但无数据返回,一般用于客户端向服务器端发送请求,而对客户端不需要发送新信息内容的情况。

4.HEAD: 获得报文首部

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

              使用HEAD方法请求响应举例:

              请求:  HEAD /index.html HTTP/1.1

                            Host: www.hacker.jp

              响应: 返回与index.jp有关的响应首部

5.DELETE:删除文件

             DELETE方法用来删除文件,是与PUT相反的方法。也就是说,DELETE方法安请求URI删除指定的资源。

             使用DELETE方法请求响应举例:

             请求: DELETE /example.html HTTP/1.1

                          Host: www.hacker.jp

             响应: 响应返回状态码 204 No Content (该html已从该服务器上删除)

5.OPTIONS:询问支持的方法

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

             使用OPTIONS方法请求响应举例:

             请求: OPTIONS * HTTP/1.1

                          Host: www.hacker.jp

             响应: HTTP/1.1 200 OK

                           Allow: GET, POST,HEAD,OPTIONS (返回服务器支持的方法)

6.TRACE: 追踪路径

             TRACE 方法是让Web服务器端将之前的请求通信环回给客户端的方法。 

              发送请求时,在Max-Forwards首部字段中填入数值,每经过一个服务器端就将该数字减一,当数值刚好减到0时,就停止继续传输,最后接收到请求的服务器端则返回状态码 200 OK的响应。

              使用TRACE 方法请求响应举例:

               请求: TRACE / HTTP/1.1

                            Host: hacker.jp

                            Max-Forwards: 2 (表示中途经过两个代理服务器)

               响应: HTTP/1.1 200 OK

                            Content-Type: message/http

                            Content-Length: 1024


                            

                            TRACE / HTTP/1.1

                            Host: hacker.jp

                            Max-Forwards: 2  (返回响应包含请求内容)

  从上例我们不难看出,客户端通过TRACE 方法可以查询发送出去的请求是怎样被加工修改的。

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

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

                   使用CONNECT方法请求响应举例:

                   请求:CONNECT proxy.hacker.jp:8080 HTTP/1.1

                                Host: proxy.hacker.jp

                    响应: HTTP/1.1 200 OK (之后进入网络隧道)



这篇关于2.3 告知服务器意图的HTTP方法以及使用方法下达命令的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

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

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

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

Nginx部署HTTP/3的实现步骤

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

springboot中使用okhttp3的小结

《springboot中使用okhttp3的小结》OkHttp3是一个JavaHTTP客户端,可以处理各种请求类型,比如GET、POST、PUT等,并且支持高效的HTTP连接池、请求和响应缓存、以及异... 在 Spring Boot 项目中使用 OkHttp3 进行 HTTP 请求是一个高效且流行的方式。

Redis 的 SUBSCRIBE命令详解

《Redis的SUBSCRIBE命令详解》Redis的SUBSCRIBE命令用于订阅一个或多个频道,以便接收发送到这些频道的消息,本文给大家介绍Redis的SUBSCRIBE命令,感兴趣的朋友跟随... 目录基本语法工作原理示例消息格式相关命令python 示例Redis 的 SUBSCRIBE 命令用于订

防止Linux rm命令误操作的多场景防护方案与实践

《防止Linuxrm命令误操作的多场景防护方案与实践》在Linux系统中,rm命令是删除文件和目录的高效工具,但一旦误操作,如执行rm-rf/或rm-rf/*,极易导致系统数据灾难,本文针对不同场景... 目录引言理解 rm 命令及误操作风险rm 命令基础常见误操作案例防护方案使用 rm编程 别名及安全删除

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

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

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

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

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