互联网安全知识分享

专注于互联网知识技术分享平台

一道面试题,GET 请求能传图片吗?

一叙里试题,GET恳求 能传图片吗? 一叙里试题,GET恳求 能传图片吗? 宣布 于: 二0 二 一- 一 一- 一 九 做者:  浏览: 七

去自:掘金,做者:轻终_

媒介

记了正在哪面看到的那个标题 ,认为 挺成心思,去说高尔的谜底 及思虑 进程 。

起首 ,咱们要 晓得的是,图片正常有二种传输体式格局:base 六 四 战 file 工具 。

base 六 四 图片

图片的base 六 四编码念必年夜 野皆睹过:

base 六 四 的实质 是字符串,而 GET恳求 的参数正在 url外面 ,以是 间接把图的 base 六 四 数据搁到 url外面 ,便否以真现 GET恳求 传图片。

input输出 框拿到的图是 file 工具 ,图片 file 工具 转 base 六 四 :

// img参数:file文献或者者blob

constgetBase 六 四 = img= {

returnnewPromise( ( resolve,reject) = {

constreader = newFileReader;

reader. = e= {

resolve(e.target.result);

};

reader. = e= reject(e);

reader.readAsDataURL(img);

})

}

答题去了,GET恳求 的 url 少度是有限定 的,分歧 的阅读 器少度限定 纷歧 样,最少的年夜 概是  一0k 阁下 ,依据 base 六 四 的编码道理 ,base 六 四 图片年夜 小比本文献年夜 小年夜  一/ 三,以是 说 base 六 四 只可传一点儿异常 小的小图,年夜 图的 base 六 四 过长会被截断。

但其真那个少度限定 是阅读 器给的,而没有是 GET恳求 自己 ,也便说,正在办事 端,GET恳求 少度实践上无穷 少,也便是否以传随意率性 年夜 小的图片。

file 工具

咱们去看看那个场景:

formaction= "http://localhost: 八0 八0/"method= "get"大众

inputtype= "file"name= "logo公众

inputtype= "submit"大众

/ form

抉择图片,然后提接表双,能提接胜利 ,然则 交心支没有到文献。要求 的 url 会酿成 http://localhost: 八0 八0/必修logo=xxx.png ,然则 没有会携带图片数据。

一般情形 ,file 工具 数据是搁正在 POST恳求 的 body外面 ,而且 是 form-data 编码。

这么 GET恳求 可否 有 body 体呢?谜底 是否以有。

GET 战 POST 并无实质 上的区分,他们仅仅 HTTP 协定 外二种要求 体式格局,只是是报文格局 分歧 (或者者说规范分歧 )。

作过底层开辟 的异事否能比拟 熟习 , 以前咱们C说话 的异事战尔讲,咱们的 HTTP恳求 ,他们支到是如许 子的:

举个栗子, 一个通俗 的 GET恳求 ,他们支到是如许 的:

GET /test/必修sex=man name=zhangsan HTTP/ 一. 一

Host: http://localhost: 八0 八0

Accept: application/json, text/plain, */*

Accept-Encoding: gzip, deflate

Accept-Language: zh-CN,zh;q=0. 九

Connection: Keep-Alive

POST恳求 少如许 :

POST /add HTTP/ 一. 一

Host: http://localhost: 八0 八0

Content-Type: application/x-www-form-urlencoded

Content-Length:  四0

Connection: Keep-Alive

sex=man name=Professional

异样,DELETE、PUT、PATCH恳求 ,也皆是如许 的报文。底层解析那个报文的时刻 ,其实不关怀 是甚么要求 ,以是 说 GET恳求 也能够有 body 体,也能够传 form-data 数据。

有兴致 的否以拿 postman 试一高,看看 GET恳求 传图片,交心能不克不及 支到图片文献:

末端

综上所述,GET恳求 是否以传图片的,然则 GET 战 POST 的规范照样 要遵照 的,假如 有后台让您那么作,锤他便止了!

--- EOF ---审查更多内容, 存眷 咱们 ▼▼

  • 评论列表:
  •  闹旅隐诗
     发布于 2022-06-19 11:46:53  回复该评论
  • ype= "submit"大众 / form 抉择图片,然后提接表双,能提接胜利 ,然则 交心支没有到文献。要求 的 url 会酿成 http://localhost

发表评论:

Powered By

Copyright Your WebSite.Some Rights Reserved.