HTTP的请求方法,空行,body,介绍请求报头的内部以及粘包问题

这篇具有很好参考价值的文章主要介绍了HTTP的请求方法,空行,body,介绍请求报头的内部以及粘包问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、GET与POST简介

二、空行和body

三、初识请求报头以及粘包问题

四、认识请求报头剩余部分


一、GET与POST简介

GET https://www.sogou.com/HTTP/1.1

请求报文中的方法,是最常规的方法(获取资源)

POST:传输实体主体的方法

一般来说方法的比重

GET占据八成

POST占据一成

其他的各种杂七杂八的方法一成

方法描述的语义:

GET:从服务器获取XXX💛

POST(常见语境登入,上传):从服务器传输一个XXX💙

但是后来人们都不咋遵守这个语义了

POST和GET主要区别🙆 🙆 🙆 

GET把一些自定义的数据放到QueryString里,body通常是空的

POST把一些自定义的数据放到body里,QueryString通常是空的

共性:都是传输到服务器,本质上没有任何区别,放到URL中QueryString用户可以看到,Body不可视。

经典面试题

上传和登入POST更多

本质上数据放到哪里都可以,二者可以相互替代,只需要记住

Body用户不可视(不可收藏)

QueryString:用户可视(收藏夹可以收藏)

网上部分错误说法: 💢 💢 💢

1.比较长的数据放到body中(用POST)原因:GET请求,URL有限制,规定了具体长度上限(1kb,2kb····老黄历,好久之前的事情了)

2。POST比GET安全,我们说的安全都是:容不容易被黑客截胡,就算POST只是让普通的用户看不到数据了,但是并不影响黑客操作,保证安全的关键是对传输的敏感数据进行加密

网上的部分需要注意的发言(不是很对): 💫 💫 💫

1.GET和POST语义不同

设计者最初是赋予了不同的语义,但是实践中不一定完全遵守

如:有的公司,不管你请求还是发送,都是POST

2.GET幂等,POST不是幂等

给你相同的输入,每次都是相同的输出就是幂等,每次输出的不相同就不是幂等(说是幂等其实更像是说你的产出不稳定,随时做出改变)(就像是百度不孕不育的广告,第一个地点肯定不是北京的医院而是你们当地的医院。

3GET请求可以被缓存,POST不可以被缓存

有的操作,比较耗时,与其每次都要重新计算,不如保存下来结果,在下次存的时候,去直接的获取他(但是获取的前提是幂等,换句话说,23放到一起更容易记住)

二、空行和body

空行,相当于一个分隔符分隔了header和body描述了body从哪里开始,body里格式,其实有很多种,此处body格式和之前说过的QueryString

body:encrypt key=password&utf8=%E2%9C%a3&anthenticy_token=jp%24subbyhwj

也是键值对,只不过经过了urlencode的,在登入场景中,这里就包含当前这次登入的用户名和密码等认证信息。

三、初识请求报头以及粘包问题

请求报头也是键值对结构,每一行是一个键值对,键与值之间使用,空格来分隔,例如:

Cookie:  xxxx(键和值之间存在空格)

QueryString(body中键值对,完全是程序自定义的,header中键值对,主要是标准规定的(有哪些值,对应的取值有哪些,当然他也会有自定义的部分)

Host:服务器主机地址和端口,Host内容,不实在URL中已经有了吗,为什么还要再去表示一遍呢

原因:HOST内容和URL是一致的,但是也有例外,如果用了代理,就不一定一样了。

HTTP的请求方法,空行,body,介绍请求报头的内部以及粘包问题,http,网络协议,网络HTTP的请求方法,空行,body,介绍请求报头的内部以及粘包问题,http,网络协议,网络

Content-Length->描述了body长度是多少字节,有的有body,有的没有,如果没有body,这个字段可以没有,假如说有body,则这个字段就必须有。否则他就是一个非法的请求。

body从空行开始,数Content-Length这么长,就是body结束

这个长度Content-Length有没有让你想起一位经典呢——没错就是我们的TCP粘包问题,HTTP基于TCP来解决,当浏览器连续发起多个HTTP的请求的时候,或者服务器连续返回HTTP服务器的时候,服务器和浏览器如何区分,从哪里到哪里是一个完整的HTTP数据呢(这就是粘包问题,老方法 1:使用分隔符,2:使用长度,HTTP两个都有,假如是GET,没有Body使用空行来作为结尾标点,假如是POST,有Body,使用长度来区分结尾。

四、认识请求报头其他部分

Content-Type请求的Body中数据格式<->HTTP有多个用途,传输数据也有很多种类

主要分为以下三种:

1.application/x-www-form-urlended:Body的格式就和QueryString一样(登入请求)

2.multiport/form-data 一般上传文件/或者图片会是这种情况(当然也不绝对,码云上传的图片不是这种)

3.application/json:body是json格式

当然这是请求的格式,假如是响应可能更复杂如html:text/html····· image/jpg/applictaion/json/text/css都有可能的,通过Content-Type可以区分body格式是什么,尤其是浏览器,需要根据不同格式来决定如何处理 ,一个网站很多资源是固定不变的(css,图片,js很少变化)为了提高网站的加载速度,会第一次访问之后,把这些资源缓存在本地(也就是你浏览器的电脑硬盘上)下次访问,就不必重新访问网盘。

4.User-Agent(UA)

User-Agent:Mozila/5.0/windows NT 10.0;win64;x64 (操作版本系统, win64,就像是我的电脑ARM架构)AppleWebKit/537.36(KHTML ,like Gecko不用知道),Chrome/116.0.0.0 Safari/537.36

属于是旧时代的遗物了

新的浏览器支持的功能更多,旧的浏览器支持功能少,但是同一时刻,市面上有人使用新的浏览器版本,有人用旧的

如果你此时开发一个网站,是否会选择让他拥有更牛的功能呢?(假如是拥有了,新用户舒服了,但是老用户就无法使用了),聪明的猿们想了个办法:浏览器发送HTTP请求的时候,向服务器自报家门,告诉服务器,我是使用什么系统,什么浏览器上网,服务器可以根据该信息,区分对待。->(让他变的更兼容),UA主要区分的PC端/移动端(PC:电脑,移动端:手机)

Refer:描述了当前页面从哪里来,如果你里面通过浏览器地址直接输入URL,点击收藏夹打开的网页,这个请求带referer,但是如果你是点击了某人网页的内容,产生了跳转,就是referer。

一般广告主可能在多个网站投广告,广告主分别统计来自百度,搜狗,哪个来自哪个端搜索引擎,来给他们💰,当然你的refeerer是明文传输的前提。

当然了,这样也容易出现一种情况叫做“运营商劫持”,比如说来自搜狗的广告,你把它改成联通的,这样就会提高运营商的收入。文章来源地址https://www.toymoban.com/news/detail-712888.html

到了这里,关于HTTP的请求方法,空行,body,介绍请求报头的内部以及粘包问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • http请求和响应格式说明,http的get和post请求方式说明,http的请求体body的几种数据格式

    一个HTTP请求报文由 请求行(request line)、请求头部(header)、空行和请求数据 4个部分组成, 请求报文的一般格式 1、第一行必须是一个请求行(request-line),用来说明请求类型,要访问的资源以及所使用的HTTP版本 2、紧接着是一个请求头(header),用来说明服务器要使用的附加信息

    2024年02月02日
    浏览(45)
  • 关于form-data和http请求body&网关处理

    场景 【在http过网关时,修改内容】 在网关过滤器中,监听所有http请求,截获请求,并且修改body中内容。添加一组用户凭证,然后通过网关走向后台服务 使用applicaon/json的请求时,能很好的解决 使用form-data时,body采用下面的 \\\'boundary—\\\'限定边界,加入参数的形式进行传递

    2024年02月08日
    浏览(31)
  • Postman系列(六)-请求body类型介绍与配置

    ===如果你觉得这篇内容对你有所帮助,有所启发,我想邀请你帮我个忙, 搜索公众号名称,或点击文章底部卡片即可加我。=== post请求一样会用到查询参数、请求头、cookie等参数,它与get请求最大的不同就是,post请求需要上传“body”。在URL左侧下拉框可选择请求的方法。 在

    2023年04月11日
    浏览(25)
  • tp6框架中Http类 请求的header、body参数传参 及post、file格式

    引入Http类: 在需要使用的地方引入Http类: use thinkfacadeHttp; GET请求示例: $response = Http::get(\\\'https://example.com/api/resource\\\');  设置Header参数: $headers = [ \\\'Authorization\\\' = \\\'Bearer YourAccessToken\\\', \\\'Content-Type\\\' = \\\'application/json\\\', ]; $response = Http::header($headers)-get(\\\'https://example.com/api/resource\\\'); POST请

    2024年01月19日
    浏览(37)
  • 全网多种方法分析解决HTTP Status 404资源未找到的错误,TCP的3次握手,dns域名解析,发起http请求以及cookie和session的区别

    正赶上最近 ChatGPT 很火,于是借助 ChatGPT 来解释 HTTP Status 404 ,如下所示: HTTP Status 404: The HTTP Status 404 means that the requested resource was not found on the server. This is commonly used in response to a failed HTTP request and can be caused by mistyping an URL, spelling mistakes, or trying to access a file or resource that

    2023年04月08日
    浏览(37)
  • 如何自动转发接收的请求报头?

    了解OpenTelemetry的朋友应该知道,为了将率属于同一个请求的多个操作(Span)串起来,上游应用会生成一个唯一的TraceId。在进行跨应用的Web调用时,这个TraceId和代表跟踪操作标识的SpanID一并发给目标应用,W3C还专门指定了一份名为Trace Context的标准,该标准确定了一个名为t

    2024年02月07日
    浏览(29)
  • 推荐系统离线评估方法和评估指标,以及在推荐服务器内部实现A/B测试和解决A/B测试资源紧张的方法。还介绍了如何在TensorFlow中进行模型离线评估实践。

    📕我是廖志伟,一名Java开发工程师、Java领域优质创作者、CSDN博客专家、51CTO专家博主、阿里云专家博主、清华大学出版社签约作者、产品软文创造者、技术文章评审老师、问卷调查设计师、个人社区创始人、开源项目贡献者。🌎跑过十五公里、徒步爬过衡山、🔥有过三个

    2024年02月08日
    浏览(39)
  • 常见的http请求头以及响应头

    1-1 Accept 1、 Accept : text/html 浏览器可以接收服务器回发的类型为text/html 2、 Accept: */*代表浏览器可以处理所有类型 1-2 Accept-Encoding 1、 Accept-Encoding: gzip,deflate 浏览器申明自己接收的编码方法,通常指定压缩方法,是否支持压缩,支持什么压缩方法(gzip,deflate) 1-3 Accept

    2023年04月09日
    浏览(31)
  • 深入了解HTTP 500内部服务器错误的原因及解决方法

    HTTP 状态代码提供有关在线请求是否成功的信息,如果不成功,则错误是什么。 但是错误消息并不总是很清楚。 “500 内部服务器错误”尤其如此。 此消息表示在连接到服务器期间发生错误,并且无法访问所请求的页面。 但是,它不会告诉你为什么会这样。 幸运的是,有不

    2024年02月08日
    浏览(49)
  • 基础知识:HTTP协议以及GET请求和POST请求的区别

    qq对于HTTP协议,做Web编程的开发人员再熟悉不过了。  不论是前端Html页面通过Ajax还是客户端通过 HttpClient 又或服务端与服务端之间的Rest请求,这都需要通过Http协议完成请求  。在HTTP协议中,我们最常用的是GET和POST请求,对于这两个方法,应该是最基础的东西。但是,两

    2024年02月08日
    浏览(81)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包