摘要
我们知道,当我们访问各种网页的时候,之所以能够看到页面,根本原因是发送了http请求然后得到了响应,从而页面才会弹出来。再或者我们上传一些照片和视频时,之所以可以上传成功也是因为我们通过http请求来进行上传,从而将资源放在了网上。
当客户端像服务端发送请求的时候,针对于不同意图的请求,我们分成了不同的http请求方法。
1.GET请求
GET方法是最常见也是最简单的http请求方法,它主要用作于获取资源。也就是说我客户端请求什么,你服务器就原样给我返回什么。
我请求的是文本,你就保持原样返回;我请求的是像CGI那样的程序,你就给我返回运行结果。
2.POST请求
POST方法主要用来传输实体的主体。
也就是说,当客户端需要向服务器传输一些东西的时候呢,这个时候就可以用POST方法了。那GET方法可以不可以呢?当然也可以,但是我们不推荐使用GET方法来对实体的主体进行传输。
这个时候我们就会出现一个经典的面试问题:咳咳,请问GET和POST有什么区别?
3.GET和POST的区别
这里面我们可以参考一下w3c里面说的:
1.GET在浏览器回退时是无害的,而POST会再次提交请求。
2.GET产生的URL地址可以被Bookmark,而POST不可以。
3.GET请求会被浏览器主动cache,而POST不会,除非手动设置。
4.GET请求只能进行url编码,而POST支持多种编码方式。
5.GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
6.GET请求在URL中传送的参数是有长度限制的,而POST么有。
7.对参数的数据类型,GET只接受ASCII字符,而POST没有限制。.
8.GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
9.GET参数通过URL传递,POST放在Request body中。
4.PUT请求
PUT方法主要用来传输文件,就像FTP协议的文件上传一样。
但是由于Http/1.1的PUT方法不带验证机制,存在安全性问题,所以一般的网站都不用这个方法来进行文件传输。
5.HEAD请求
HEAD请求主要用来获取报文首部
HEAD方法和GET方法一样,只不过不返回报文的主体部分。只是用来确定请求的有效性及资源的更新日期时间等。
6.DELETE请求
DELETE方法主要是用来删除某个资源,是和PUT完全相反的方法。
同时该方法也不带认证机制,所以一般网站并不会对它进行开放使用。
7.OPTIONS请求
OPTIONS方法用来查询:请求的指定资源都支持什么http方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)