HTTP协议详解2
HTTP请求方法
1、GET
get方法用于请求指定页面的指定信息(以实体的格式),如果请求资源为动态脚本(非HTML),那么返回文本是WEB容器解析后的HTML源代码,而不是源文件。
例如请求index.jsp,返回的不是index.jsp 的源文件,而是经过解析后的HTML代码
GET /index.php?id=1 HTTP/1.1
HOST:www.xxser.com
使用GET请求 index.php,并且id参数为1,在服务端脚本语言中可以选择性的接受这些参数,例如id=1&name=admin
Index.php?id=1&username=admin //多个参数以”&“分隔
服务器端脚本不会理会你输入的内容,依旧会去查询数据,最终向服务端发送解析过的HTML数据
2、HEAD
HEAD方法除了服务器不能在相应里返回消息主体之外,其它都与GET相同
此方法经常用来测试超文本连接的有效性、可访问性和最近的改变
HEAD /index.php HTTP/1.1
HOST : www.xxser.com
3、POST
POST方法与GET方法相似,但是最大的区别在于,GET方法没有请求内容,而POST有请求内容
POST请求最多用于服务器发送大量数据
GET也可以发送数据,但是有大小限制,并且GET请求会发送数据显示在浏览端
POST则不会显示在浏览端,相对安全性较高
例如上传文件,提交留言等,只要是向服务器传输大量数据,通常都会使用POST请求
POST /v4/links/activity-stream HTTP/1.1
Host: tiles.services.mozilla.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0
Accept: */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: text/plain;charset=UTF-8
Origin: null
Content-Length: 468
Connection: close
用POST方法向服务器请求/v4/links/activity-stream
4、PUT
PUT方法用于请求服务器把请求中的实体存储在请求资源下,如果请求资源已经在服务器中存在,那么将会用此请求中的数据替换原来的数据作为指定资源的最新修改版。
如果不存在,则会创建这个资源
PUT /input.txt
HOST: www.xxser.com
Content-Length:6
123456
这段HTTP PUT请求将会在主机根目录下创建input.txt,内容为123456。通常情况下,服务器都会关闭PUT方法,因为他会为服务器创建文件,属于危险的方法之一
5、DELETE
DELETE 方法用于请求源服务器删除请求的指定资源。服务器一般会关闭此方法,因为客户端可以进行删除问价操作,属于危险方法之一
6、TRACE
TRANCE 被用于激发一个远程的应用层的请求消息回路
TRACE方法允许客户端去了解数据被请求链一端接受的情况,并且利用那些数据信息去测试或诊断,此方法较少见
7、CONNECT
HTTP1.1 协议规范保留了CONNECT方法,此方法是为了用于能动态切换到隧道的代理
8、 OPTIONS
options方法是用于请求获得由URI标识的资源在请求/响应的通信过程中可以使用的功能选项
通过此方法,客户端可以在采取具体资源请求之前,决定对该资源采取何种必要措施,或者了解服务器的性能
OPTIONS / HTTP/1.1
HOST: www.xxser.com