告知服务器意图的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

相关文章

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2

Java调用Python代码的几种方法小结

《Java调用Python代码的几种方法小结》Python语言有丰富的系统管理、数据处理、统计类软件包,因此从java应用中调用Python代码的需求很常见、实用,本文介绍几种方法从java调用Pyt... 目录引言Java core使用ProcessBuilder使用Java脚本引擎总结引言python

Apache Tomcat服务器版本号隐藏的几种方法

《ApacheTomcat服务器版本号隐藏的几种方法》本文主要介绍了ApacheTomcat服务器版本号隐藏的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1. 隐藏HTTP响应头中的Server信息编辑 server.XML 文件2. 修China编程改错误

Java中switch-case结构的使用方法举例详解

《Java中switch-case结构的使用方法举例详解》:本文主要介绍Java中switch-case结构使用的相关资料,switch-case结构是Java中处理多个分支条件的一种有效方式,它... 目录前言一、switch-case结构的基本语法二、使用示例三、注意事项四、总结前言对于Java初学者

使用Python实现大文件切片上传及断点续传的方法

《使用Python实现大文件切片上传及断点续传的方法》本文介绍了使用Python实现大文件切片上传及断点续传的方法,包括功能模块划分(获取上传文件接口状态、临时文件夹状态信息、切片上传、切片合并)、整... 目录概要整体架构流程技术细节获取上传文件状态接口获取临时文件夹状态信息接口切片上传功能文件合并功能小

Oracle Expdp按条件导出指定表数据的方法实例

《OracleExpdp按条件导出指定表数据的方法实例》:本文主要介绍Oracle的expdp数据泵方式导出特定机构和时间范围的数据,并通过parfile文件进行条件限制和配置,文中通过代码介绍... 目录1.场景描述 2.方案分析3.实验验证 3.1 parfile文件3.2 expdp命令导出4.总结

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

更改docker默认数据目录的方法步骤

《更改docker默认数据目录的方法步骤》本文主要介绍了更改docker默认数据目录的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1.查看docker是否存在并停止该服务2.挂载镜像并安装rsync便于备份3.取消挂载备份和迁

JavaScript DOM操作与事件处理方法

《JavaScriptDOM操作与事件处理方法》本文通过一系列代码片段,详细介绍了如何使用JavaScript进行DOM操作、事件处理、属性操作、内容操作、尺寸和位置获取,以及实现简单的动画效果,涵... 目录前言1. 类名操作代码片段代码解析2. 属性操作代码片段代码解析3. 内容操作代码片段代码解析4.

如何在一台服务器上使用docker运行kafka集群

《如何在一台服务器上使用docker运行kafka集群》文章详细介绍了如何在一台服务器上使用Docker运行Kafka集群,包括拉取镜像、创建网络、启动Kafka容器、检查运行状态、编写启动和关闭脚本... 目录1.拉取镜像2.创建集群之间通信的网络3.将zookeeper加入到网络中4.启动kafka集群