HTTP协议03(8种方法)

1 前情回顾

前面两篇文章里我们学习了HTTP协议基础知识,包括HTTP请求、响应格式,fiddler抓包工具的使用方法及URL格式和重要组成部分,下面我们继续了解HTTP,这里我们即将学习一个HTTP的重要内容:HTTP的方法,给我们提供使用HTTP的方法。

2 HTTP常用方法

2.1 GET

这是http中最常用的方法,没有之一

2.1.1 使用场景

  • 浏览器地址栏直接输入URL,就会触发GET;
  • html里面的link,a,img,script也会触发GET请求(herf、src都会引用一个外部的资源,本质上就是浏览器重新发送一个GET请求,从服务器拿到对应的数据),一个浏览器加载出一个页面,往往就会经过多重HTTP请求的交互;
  • form表单:html里form标签,可以构造出GET请求;
  • ajax

2.1.2 GET 请求的特点

  • 首行的第一部分为 GET;
  • URL 的 query string 可以为空, 也可以不为空,如果需要给服务器传递一些参数,这些参数通常就是通过query string 来传输的;
  • header 部分有若干个键值对结构;
  • body 部分为空。

2.1.3 误区

关于GET请求长度限制的说法是有问题的,在标准定义中没有对URL的长度进行限制,标准虽然没有规定长度上限,但是浏览器和HTTP服务器在实现的时候对于具体的实现可能有也可能没有。

2.2 POST

2.2.1 应用场景

  • form;
  • ajax。

2.2.2 特点

登录请求一般来说就是典型的POST请求

  • 方法叫做POST;
  • URL通常是没有 query string ;
  • 有若干header,都是键值对的形式;
  • body通常是有的,body的数据格式有很多种;
  • POST在传递信息给服务器的时候,通常会把信息放到body中

2.3 GET和POST的区别

  1. 没有本质区别,使用GET实现的场景基本都可以使用POST代替,反之亦然。
  2. 细节区别:
  • GET的语义是从服务器上获取数据,POST是往服务器上提交数据;
  • 使用习惯上,给服务器传递的数据,GET通常是放在url的query string中,POST通常是放在body中;
  • GET请求建议实现成“幂等”的,POST一般不要求实现成“幂等”,“幂等”:输入是确定的,输出的结果也是确定的,与服务器提供的api类型有关;
  • 在幂等的基础上,GET的请求结果是可以被缓存的,POST则一般不会缓存,如果当前GET是幂等的,则浏览器缓存,如果当前GET不是幂等的,就需要通过特殊的技巧米面浏览器产生缓存。
  • 误区 :POST比GET更安全,依据GET把参数放到url里,如果实现登录页面,用户名和密码直接以query string 的形式放到url里了,直接显示到浏览器地址栏中了,可以被看到,所以不安全,而POST是把参数放到body里,body不会显示到浏览器界面上,所以就不会显示出来,也就更安全。以上这种说法是站不住脚的,不能说不在界面上显示就更安全,只要没有加密就不能说安全。

3 其他方法

以上两个方法足以应对百分之九十以上的场景,下面的这些作为了解。

  • PUT:PUT 与 POST 相似,只是具有幂等特性,一般用于更新;
  • HEAD:HEAD 类似于GET,只不过响应体不返回,只返回响应头;
  • DELETE:DELETE 删除服务器指定资源;
  • OPTIONS:OPTIONS 返回服务器所支持的请求方法;
  • TRACE:TRACE 回显服务器端收到的请求,测试的时候会用到这个;
  • CONNECT:要求用隧道协议链接代理;
  • LINK:建立和资源之间的联系;
  • UNLINE:断开连接关系。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值