作者回复: 是的,看来是我没说清楚,导致有的同学误会了。
content-type是实体字段,所以请求和响应里都可以用,作用是指明body数据的类型。
正文里为了叙述方便,只在服务器的响应报文里出现了content-type,实际上它是个通用字段,如果要发post请求,就需要带上它。
作者回复: 经验之谈!
作者回复: 回答的不错。
第二个问题要修改一下,这也怪我没有说清楚。
content-*字段也可以用在请求报文里,说明请求体的数据类型。在这里不能用accept字段,因为是post,所以要用content-language来指明body的语言类型,在content-type里用charset指明编码类型。
可以参考其他同学的回答。
作者回复: thanks。
作者回复: 客户端在发送请求的时候也有义务设置content-type,也应该是知道数据是什么类型的,你设置成json,服务器看到了就好处理。
content-type是实体字段,请求响应里都可以出现。
accept是告诉服务器,客户端支持什么类型,防止服务器发过来的数据不认识。
作者回复: 每建立一个连接就需要tcp握手,对同一个ip地址+端口,浏览器通常最多建立6个并发连接。
作者回复: 1.accept是你说的第一个意思,没有第二个意思。
2.第二个意思应该用Content-Type
3.看后台逻辑如何处理,数据是肯定可以拿到的,而且json也属于text。
4.在请求头里可以加content-type字段,表示请求体的数据类型。
作者回复: √
作者回复: 嗯,我说的时候不太准确。utf-8只是编码方案,Unicode是字符集。
作者回复: post和get时都可以使用Accept-Language,表示客户端可以理解的语言,要求服务器按照指示返回数据。
Content-Language表示的是body数据的语言,因为post带有body,所以要用Content-Language来告诉服务器,报文的body是什么。
如果get报文也有body,那么它也可以使用Content-Language。
Accept-Language是请求头字段,只要是发请求就可以带。
Content-Language是实体头字段,只要是有body就可以带。
作者回复: 继续努力。
作者回复: √
作者回复: 努力学习!
作者回复: accep-encoding:gzip表示客户端支持gzip,但服务器发过来的是否经过压缩需要看content-encoding,也有可能不压缩。
作者回复: 应该用content-language,post时应该用content*字段描述body的语言。
作者回复: 发post请求,服务器也会有响应报文,所以就需要用accept头告诉服务器,客户端能够接受什么样的数据。
否则服务器发过来一个pb或者msgpack,你就没法处理了。
作者回复: 学习也要劳逸结合,有张有弛。
作者回复: 1对。
2需要使用content-*字段,不能用accept字段,可参考其他同学的回答。
3的比喻还差一点,换成外包装比较合适。
作者回复: 好经验多分享。
作者回复: 对,不过最好还是加上content-language。