当前位置: 首页 > news >正文

公司注册网站需要什么资料建筑工程网教育网

公司注册网站需要什么资料,建筑工程网教育网,六安网站,株洲头条新闻HTTP GET是否可以有请求体 先说结论#xff1a; HTTP协议没有规定GET请求不能携带请求体#xff0c;但是部分浏览器会不支持#xff0c;因此不建议GET请求携带请求体。 HTTP 协议没有为 GET 请求的 body 赋予语义#xff0c;也就是即不要求也不禁止 GET 请求带 body。大多数…HTTP GET是否可以有请求体 先说结论 HTTP协议没有规定GET请求不能携带请求体但是部分浏览器会不支持因此不建议GET请求携带请求体。 HTTP 协议没有为 GET 请求的 body 赋予语义也就是即不要求也不禁止 GET 请求带 body。大多数 HTTP 实现从技术上都支持 HTTP GET 请求带 body少数实现会禁止google-chrome 浏览器、node-fetch少数实现会不建议Fiddler。 1 HTTP协议对GET请求包含BODY的规定 1.1 RC1945 RFC 1945 发布于 1996 年描述了 HTTP/1.0 。 其中和 body 有关的第 7 节提到了一下内容 Full-Request and Full-Response messages may transfer an entity within some requests and responses. An entity consists of Entity-Header fields and (usually) an Entity-Body. 译Full-Request 和 Full-Response 消息可以在某些请求和响应中传输实体。实体包括实体首部字段并且通常包括一个实体 body。 说明 HTTP/1.0 会通过请求或响应的 body 传输实体并且没有限定哪些请求方法不能传输实体。也就是说 GET 也可以有 body。 另外其 8.1 节关于 GET 和 POST 方法有如下描述 The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI. 译GET 方法表示查询由 Request-URI 标识的任何信息形式为实体。 The POST method is used to request that the destination server accept the entity enclosed in the request … 译POST 方法用于请求目标服务器接受包含在请求中的实体 … 说明 GET 方法的语义是请求实体POST 方法的语义是提交实体两者有明确的分工。 RFC 1945 这两处的内容可以提炼出两条信息 请求或响应需要传输实体时才会有 body。GET 请求用于请求实体而不是传输实体。 根据这两条信息可以推出GET 请求没有传输实体的语义自然也不需要 body。但 RFC 1945 也没有明确规定 GET 请求不能传输实体、不能有 body。所以按 HTML 1.0 规范GET 请求是可以有 body 的只不过没有为其定义语义。 1.2 RFC 2068 RFC 2068 发布于 1997 年描述了 HTTP/1.1。 RFC 2068 是对 RFC 1945 的更新在 4.3 节有以下描述 A message-body MAY be included in a request only when the request method allows an entity-body. 译只有当请求方法允许使用实体 body 时请求中才可以包含消息 body。 第 9 节是关于各个 HTTP 请求方法的描述但只有第 9.8 节提到: A TRACE request MUST NOT include an entity. 译TRACE 请求必须不能包含实体。 另外对 PUT、POST 的描述都默认有实体。但是对 GET 描述并没有提到请求中是否能包含实体 body。 也就是说 TRACE 不允许包含 bodyPUT、POST 请求包含 body但是 GET 没有明确说明这种没说明的情况到底是允许还是不允许呢 1.3 RFC 2616 RFC 2616 发布于 1999 年是对 RFC 2068 的更新还是描述的 HTTP/1.1。 其 4.3 节增加了如下描述 A message-body MUST NOT be included in a request if the specification of the request method does not allow sending an entity-body in requests. A server SHOULD read and forward a message-body on any request; if the request method does not include defined semantics for an entity-body, then the message-body SHOULD be ignored when handling the request. 译如果本规范规定了某个请求方法不允许发送实体则绝不能在请求中包含消息 body。服务器应该读取和转发任何请求的消息体body如果某个请求方法没有定义实体语义那么在处理请求时应该忽略消息体body。 但第 9 节对于各个方法的描述中还是没有说 GET 请求是否能有 body。 1.4 RFC 7231 2004 年发布的 RFC 7230~7235 是对 RFC 2626 的修订。其中 RFC 7231 是 HTTP 的“核心”语义规范终于在 4.3.1 节明确提到了 GET 请求的 body A payload within a GET request message has no defined semantics; sending a payload body on a GET request might cause some existing implementations to reject the request. 译GET 请求消息中的有效负载即 body没有定义的语义在 GET 请求上发送有效负载主体可能会导致某些现有实现拒绝该请求。 说明修订规范的人也知道有的 HTTP server 实现会拒绝带有 body 的 HTTP GET 请求。但是为什么规范迭代了这么多次都不规定每个请求方法是否能包含 body 呢留下这么大的争议空间也是醉了。 2 现有实现对 GET 请求 body 的支持 请求库/工具是否支持GET带bodyXMLHttpRequest不支持Fetch不支持RequestsPython最流行的HTTP请求库支持HTTPXPython库支持axios基于Promise的HTTPClient库支持superagent支持node-fetchNode.js的一个HTTP请求库不支持curl支持Postman支持Apifox支持Fiddler支持但是会用红色告警nginx支持FastAPI支持 Fildder发送GET请求红色警告⚠️图 3 结论 HTTP协议中没有明确规定GET请求是否能带body市场上部分浏览器会不支持GET请求带body。 软件工程中有一条原则不要依赖未定义的行为。HTTP 协议未定义 GET 请求的 body 语义如果想用 GET 请求发送 body得先为其定义语义并确保上下游都能很好的支持。作为服务接口的提供方不应该假设所有的调用方都能发出 GET 请求 body作为调用方不应该假设服务方能完美解析 GET 请求 body但如果服务方提供了支持 GET 请求 body 的接口可以放心使用不用纠结。 软件工程中还有另一条原则不记得原文了翻译成中国的老话就是严于律己宽已待人。我们在写库、写框架、写工具时应该支持 GET 请求带 body在封装接口时尽量不要强制调用方用 GET body 提交数据除非遇到用 GET body 才符合逻辑的特殊情况在使用别人提供的库、框架、工具或者调用协作方提供的接口时不应该强求对方支持 GET 请求 body。 参考文章 https://zhuanlan.zhihu.com/p/456921996
http://www.yutouwan.com/news/495297/

相关文章:

  • 积极加强网站建设西安做网站比较好的公司
  • 韩国教做发饰的网站服务好的高端网站建设
  • 北京网站建设第一品牌安阳后营300一次贵不贵
  • 西安做网站的价格网易搜索引擎入口
  • 创建个人网站怎么赚钱阿里云空间+1对1私人专属设计师
  • 甘肃省省经合局网站建设的通知网站开发需要用到哪些软件有哪些
  • 雄安优秀网站建设方案中国变装网站教你如何做女人
  • 网站建设相关知识博客不用登录的游戏
  • 襄阳网站建设制作费用抖音代运营需要抖音什么条件
  • 社区网站制作本人做静态网站开发
  • 机械公司网站建设wordpress 主题详解
  • 策划方案免费网站机械加工网上平台
  • wordpress对接微信登录自己的网站如何优化
  • 东莞网站建设的价格网站有什么优势
  • 高端营销型网站制作高青外贸公司网站建设
  • 东莞清洁服务网站建设注册微信公众平台
  • 学做网站的步骤创意设计是什么意思
  • 西安做行业平台网站的公司广州网站设计哪个好
  • 公司开发网站拼多多无货源电商怎么做
  • 商城网站规划合肥seo结算
  • 开封做网站的公司台州网站制作报价
  • 网站开发公司报价厦门 网站建设 闽icp
  • 网站建设与管理专业人才调研做网站石家庄
  • 怎么编写网站代码wordpress简单论坛
  • 网站开启伪静态需要编写什么代码手机上哪个网站
  • 建设农产品网络营销网站怎样申请自媒体账号
  • 凡科网站可以做淘宝客吗wordpress 文字插件下载
  • 网站导航栏怎么设置域名网站注册最划算
  • 腾虎广州网站建设江宁网站建设
  • 网站模版 拓seo黑帽是什么意思