面试题:HTTP 常用 Method


在这里插入图片描述

概述

根据HTTP标准,HTTP请求可以使用多种请求方法。

  • HTTP1.0定义了三种请求方法: head、get、post方法。
  • HTTP1.1新增了五种请求方法:put、delete、options、trace、connect方法。

简单请求与预检请求

1.简单请求

HTTP 1.0 三个方法:HEAD、GET、POST 默认都属于简单请求 Simple Request

  • 没有自定义报头
  • MIME Type in text/plain、multipart/form-data、application/x-www-form-urlencoded
    在这里插入图片描述
2.预检请求

预检请求 Priflight Request 即在请求之前需要首先由浏览器自发发送 Options 请求的请求。预检请求为OPTIONS请求,用于向服务器请求权限信息的。预检请求被成功响应后,才会发出真实请求,携带真实数据。

预检请求的范围

一般 HTTP1.1 中的方法请求默认都会触发预检请求

但是简单请求满足以下条件也可以触发 Options 请求

  • 带有自定义头信息
  • MIME Type Not in text/plain、multipart/form-data、application/x-www-form-urlencoded

各个请求方法介绍

Get

1.方法用途

  • GET 方法的首要目的是 获取资源

2.方法特点
a) 参数可见

  • GET 方法的参数是明文可见的包含在 URL 当中,所以说敏感信息不建议使用 GET 方法
  • 不过也正是因此,GET 方法允许被保存书签

b) 数据类型只允许 ASCII

  • GET 方法的数据类型只允许是 ASCII 字符,所以说传递 二进制 文件就不可以用 GET 方法了哦

c) 可以保存书签

  • 当我们访问某一个网站的频率特别高的时候,肯定添加到书签,那其实书签就是依靠 GET 方法来保存的

d) 可以被缓存

  • GET 方法支持缓存,当本次请求允许被缓存时,会将资源存值本地 cache ,在未过期的情况下直接取本地 cache;缓存过期后视情况而定

e) 参数会保留在浏览器历史记录

  • 比较直观的感受就是,我们可以在浏览器的历史记录中查看到曾经搜索过的关键字信息

f) 请求长度会受限于所使用的浏览器与服务器

  • 不同的浏览器对于 GET 请求长度的限制也是不同的,注意这是 浏览器 / 服务器(IE、Chrome、Apache、IIS等) 对于长度的限制,而不是 HTTP 协议
Post

1.方法用途

  • POST 方法的首要目的是 提交,POST 方法一般用于添加资源

2.方法特点
a) 参数不可见,也不会被保存

  • 所以说 POST 方法是不可以被保存书签的

b) 不能收藏为书签

  • 理由如上

c) 不可以被缓存

  • 我要提交的数据被缓存在本地 cache 中想想其实也是没道理的

d) 不会被保存在浏览器历史中

  • 同样是因为参数不可见

e) 不限制请求长度

  • 对于 POST 方法这种以 提交 为首要目的的方法,肯定是不可以限制请求长度的

f) 数据类型

  • 不限,所以说 POST 是可以 提交文件 到服务器的

g) 请求方式

  • POST 请求与 GET 请求不同,他会首先提交 HEAD 信息,待得到 100 响应后,才会再次将 DATA 提交
Head

1.方法用途

  • HEAD 方法用于获取报头信息,例如检查 cache 是否被修改,是否过期?

2.方法特点

  • HEAD 方法与 GET 方法类似,但并不会返回响应主体
Options

1.方法用途

  • OPTIONS 方法的首要目的是 Priflight Request

2.方法特点
假如现在有如下配置:

Access-Control-Allow-Methods:OPTIONS, PUT

那么当浏览器发起了 Priflight Request 后,只在包含在 被允许的 HTTP 方法中的请求会被通过(Simple Request除外),而没有被包含在内的请求,例如 Delete 在Options之后将不会被请求

Put 与 Patch

1.方法用途

  • Put 与 PATCH 方法都是用于更新资源

2.方法特点

  • Put :对后台来说 Put 方法的参数是一个完整的资源对象,它包含了对象的所有字段
  • Patch:对后台来说 Patch方法的参数只包含我们需要修改的资源对象的字段
Delete

1.方法用途
Delete方法一般用于删除资源

方法与规范

其实虽然我们都说 Post(增) Delete(删)Put(改)Get(查),但其实真正我们是如何实现方法的是随意的,也就是你完全可以用 Get删除资源,Delete增加资源,所以说还有些没想明白的同学到这里就可以释然了,毕竟规定是死的,人是活的,但是按照规定是好的,不按规定也是可以的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值