15 | 海纳百川:HTTP的实体数据
该思维导图由 AI 生成,仅供参考
数据类型与编码
- 深入了解
- 翻译
- 解释
- 总结
HTTP协议中的实体数据在通信过程中起着至关重要的作用。本文详细介绍了数据类型与编码、头字段的使用、语言类型与编码、内容协商的质量值等关键概念。首先,讲解了MIME type和Encoding type的作用及在HTTP中的应用。其次,阐述了Accept和Content头字段在客户端和服务器进行内容协商中的重要性。接着,介绍了语言类型与字符集的概念,并说明了其在HTTP中的应用。最后,深入讲解了内容协商的质量值,即通过权重来设定优先级。这些内容对于理解HTTP协议中的实体数据至关重要,有助于读者深入了解HTTP协议的细节,以及如何进行内容协商和数据处理。 此外,文章还提供了实验环境和动手操作的指导,让读者能够通过实际操作加深对理论知识的理解。小结部分对数据类型和语言类型进行了概括,并提出了课下作业,引导读者进一步思考和实践。整篇文章以清晰的逻辑结构和丰富的实例,帮助读者全面理解了HTTP协议中的实体数据相关概念。 总之,本文内容丰富、结构清晰,通过理论讲解和实际操作相结合的方式,使读者能够全面了解HTTP协议中的实体数据,为他们在实际应用中做出正确的数据处理和内容协商提供了重要指导。
《透视 HTTP 协议》,新⼈⾸单¥59
全部留言(70)
- 最新
- 精选
- 彧豪上周五和服务端做上传图片的时候遇到过这个content-type的问题,上传图片时候我这边需要设置content-type:"image/jpg",然后传完了,我在预览的时候获取图片的地址,此时比如通过a标签的方式打开新标签预览该图片时才能成功预览,不然如果使用上传的js-sdk设置的默认类型:content-type:"octet-stream",那么浏览器就不认识这个图片了,转而会下载这个文件(图片),所以我是不是可以理解为content-type这字段在请求头,和响应头里都能使用?或者上传文件这个业务又不同于一般的请求操作呢?
作者回复: 是的,看来是我没说清楚,导致有的同学误会了。 content-type是实体字段,所以请求和响应里都可以用,作用是指明body数据的类型。 正文里为了叙述方便,只在服务器的响应报文里出现了content-type,实际上它是个通用字段,如果要发post请求,就需要带上它。
2019-07-01294 - 走马accept 表达的是你想要的 而你发送 post请求时,你发送的数据是给服务器的,这时候就需要像 服务器会用 content-type 标明它给你的数据类型一样,你也需要用 content- 来表明你给别人的数据的一些属性
作者回复: √
2019-07-04441 - 亚洲舞王.尼古拉斯赵四1.含义是:我这个请求最希望服务器给我返回的编码方式是gzip和deflate,他们俩在我这是最优的地位,我不接受br的编码方式,如果还有其他的编码方式的话对我来说权重0.5。服务器可能的响应头是 HTTP/1.1 200 OK Content-Encoding: gzip 2.请求头可能是 POST /serv/v1/user/auth HTTP/1.1 Content-Type: application/json Accept-Language: zh-CN, zh Accept-Charset: gbk, utf-8 3.MIME类比快递的话就是你要快递的物品(衣服,食物等),Encoding就是快递你这个物品的包装方式,如果是衣服可能就随意一点一个袋子,如果是食物担心腐烂给你放个冰袋进去 不知道回答的对不对,请老师指正
作者回复: 回答的不错。 第二个问题要修改一下,这也怪我没有说清楚。 content-*字段也可以用在请求报文里,说明请求体的数据类型。在这里不能用accept字段,因为是post,所以要用content-language来指明body的语言类型,在content-type里用charset指明编码类型。 可以参考其他同学的回答。
2019-07-01536 - 隰有荷用post方法请求接口时,在客户端语言的设置上不能使用Accept-Language吗?为什么一定是Contenr-Language呢?是不是Accept-Language只用于get方式时,表明客户端需要的的语言呢?
作者回复: post和get时都可以使用Accept-Language,表示客户端可以理解的语言,要求服务器按照指示返回数据。 Content-Language表示的是body数据的语言,因为post带有body,所以要用Content-Language来告诉服务器,报文的body是什么。 如果get报文也有body,那么它也可以使用Content-Language。 Accept-Language是请求头字段,只要是发请求就可以带。 Content-Language是实体头字段,只要是有body就可以带。
2019-10-0235 - 苦行僧现在很多小文件 比如图片 都往云存上放了 千万指定正确content-type 一旦指定错 批量修改太麻烦 而且会影响终端的解析
作者回复: 经验之谈!
2019-07-02228 - MJ老师,每一个并发连接,都需要新建tcp三次握手吗?还是一次tcp握手后,可以并发多个连接?
作者回复: 每建立一个连接就需要tcp握手,对同一个ip地址+端口,浏览器通常最多建立6个并发连接。
2019-07-0524 - 1900“所以后来就出现了 Unicode 和 UTF-8,把世界上所有的语言都容纳在一种编码方案里,UTF-8 也成为了互联网上的标准字符集。” 这句话最后有点问题吧?Unicode才是字符集,应该是“遵循UTF-8字符编码方式的Unicode字符集也成为了互联网上的标准字符集”,是么?
作者回复: 嗯,我说的时候不太准确。utf-8只是编码方案,Unicode是字符集。
2019-07-0119 - BellenHsin这篇写的不错
作者回复: thanks。
2019-07-01212 - do it1、试着解释一下这个请求头“Accept-Encoding: gzip, deflate;q=1.0, *;q=0.5, br;q=0”,再模拟一下服务器的响应头。 :最好使用gzip,deflate压缩格式,我不接受br压缩,如果都没有的话就选择其他格式 2、假设你要使用 POST 方法向服务器提交一些 JSON 格式的数据,里面包含有中文,请求头应该是什么样子的呢? content-type: application/json, charset=gbk content-language:zh-cn, zh 3、试着用快递发货收货比喻一下 MIME、Encoding 等概念。 物品的种类(水果、衣服)就是MIME,包装方式就是Encoding
作者回复: 回答的很好,继续努力。
2020-05-209 - 钱做web开发有两个问题,估计许多人都遇到过,一个是乱码问题,这个是字符集设置不一致导致的具体哪里设置的不一致通常需要观察所有需要数据转换的地方,一般是客户端和服务器端不一致了。另外,就是文件上传,这个格式一定要设置对,否则就会感到莫名其妙。 我想请教老师两个问题: 1:看到说浏览器最多会有六个连接并发执行,为什么是六个,不会是因为六六大顺吧? 2:文件上传的速度和文件的大小密切相关,文件上传的大小限制都是有哪些限制或控制?之前,这是老早了,发现有些框架默认只能是2g
作者回复: 1.这个是rfc的规定,其实以前还要小。 2.http协议对大小没有限制,这些应该都是网站服务器做的限制,比如Nginx就可以设置client body的大小。
2020-03-295