添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
含蓄的莲藕  ·  [PyQt] ...·  1 周前    · 
慷慨的黄豆  ·  Solved: HubSpot ...·  1 周前    · 
果断的跑步鞋  ·  REST API - RouterOS - ...·  6 天前    · 
英俊的羊肉串  ·  php curl ...·  1小时前    · 
曾深爱过的咖啡  ·  The Taste of Money | ...·  10 月前    · 

HTTP的方法有几种

在文章 HTTP入门 里说到了有6种,我们这里讨论最常见的GET POST

HTTP的方法

Get和Post的区别

我们讨论到Get方法和Post的区别时,大部分搜索给出的答案都是

  • Get的参数在URL中,Post的参数在HTTP的报文体Body里
  • Get参数有大小限制,Post没有大小限制
  • Get参数不安全,Post安全
  • 以上答案是错误的 参考文章 99%的人理解错Get和Post的区别 讲解为什么错误,我们这里只说结论

  • HTTP用什么请求和参数在哪里一点关系没有
  • HTTP协议对参数长度也没限制,大多数和服务器容器的配置有关
  • HTTP用什么方法都不安全,除非用HTTPS
  • HTTP的参数

    HTTP不管使用什么方法和参数放的位置都没有关系的 这里来介绍有几种放HTTP参数的方式

    URL里放参数

    在URL里放参数最简单,就是问号+键值对, 它存在于HTTP的Header中第一行

    1
    POST /psas/bug/image/confirm?param1=1&param2=b HTTP/1.1

    包含里两个参数

    param1 param2

    Body里放参数

    由于URL里放参数是放在HTTP报文头,而往Body里放参数的方式就有很多种了,如何让接收放识别这些放参数的方法,就靠Content-type

    Body参数方式 Content-type text/plain application/x-www-form-urlencoded application/json Multipart multipart/form-data; boundary= X_PAW_BOUNDARY

    根据Content-type不同,服务器去读取HTTP Body中参数的方式也不一样

    Body不同参数方式介绍

    text/plain 文本传输

    一般这个。。很少用到

    HTTP的报文体中是纯文本,没有任何格式和修饰,服务端就会拿走文本自己处理

    application 参数传输

    我们最常用到的就是 application 格式的HTTP报文体,其中还分为JSON格式与Form表单格式

    Form 表单

    这个是最常用的传递参数方式,HTML中都有form标签与其对应,其本身采用Key-Value的方式传递参数

    其本身就是简单的把URL参数中?后的字符串移到Body里

    所以看其Content-type全称 application/x-www-form-urlencoded 后边代表意思是 X-万维网-FORM表单-URL编码方式

    JSON Object

    与Form表单同属于一个Content-type分类JSON格式的全称是 application/json 与Form表单不同是,

    他的HTTP的Body是一串符合JSON格式的字符串,而不是简单的把URL参数移动到Body内

    所以说Json格式比Form更加有效的地方是可以传送Object,而不是简单的Key-Value对,但是还有聪明的小伙子用Form来发Object,参考 Spring传JSON参数和文件

    File 文件传输

    这个也很少用,一般只在返回报文中出现,用于传输 单个文件 ,所以说根据传输的文件不同其Content-type也不同,例如

    Content-type png图片 image/png pdf文档 application/pdf