网络知识

HTTP content-type与accept

1、content-type 与 accept


1.1、content-type 属于实体头`Response Header`,accept属于请求头`Request Header`。
Content-Type代表发送端(客户端|服务器)发送的实体数据的数据类型。 比如:Content-Type:text/html; 代表发送端发送的数据格式是html。放在实体中。  
Accept代表发送端(客户端)希望接受的数据类型。 比如:Accept:text/xml; 代表客户端希望接受的数据类型是xml类型。放在请求头中。 
如果后端接收json数据类型,post 的 headers 需要设置 { ‘content-type’: ’application/json’ },传给后端的数据就形如  { ‘name’:’edward’, ‘age’:’25’ } 

如果后端接收的是(表单)字符串类型,post 的 headers 需设置  { ‘content-type’: ’application/x-www-form-urlencoded’ },传输给后端的数据就形如   ‘name=edward&age=25’
1.2、accept代表客户端希望接收到的类型, Accept表示客户端(浏览器)支持的类型,也是希望服务器响应发送回来的数据类型。Accept用来指定什么媒体类型的响应是可接受的,即告诉服务器我需要什么媒体类型的数据,此时服务器应该根据Accept请求头生成指定媒体类型的数据。
比如:content-type: application/json;charset=UTF-8
代表接受的是JSON数据格式
1.3、content-type 代表服务端发送实体数据的类型``
比如:content-type: application/xml
代表发送的数据格式是XML数据格式
1.4、application/json 和 application/x-www-form-urlencoded的区别``
application/json:json格式提交,主题内容是json格式的字符串
application/x-www-form-urlencoded:是Jquery的Ajax请求默认方式,键值对形式
1.5 两者可以结合使用,如:
Content-Type: application/json;charset=UTF-8;
Accept: text/html;
代表客户端发送请求的时候,发送的数据的数据格式是json,且希望服务端返回的数据类型为html

2、常见的媒体格式类型如下


- text/html : HTML格式
- text/plain :纯文本格式
- text/xml : XML格式
- image/gif :gif图片格式
- image/jpeg :jpg图片格式
- image/png:png图片格式

3、以application开头的媒体格式类型:


- application/xhtml+xml :XHTML格式
- application/xml: XML数据格式
- application/atom+xml :Atom XML聚合格式
- application/json: JSON数据格式
- application/pdf:pdf格式
- application/msword : Word文档格式
- application/octet-stream : 二进制流数据(如常见的文件下载)
- application/x-www-form-urlencoded : <form encType=””>
中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)

4、另外一种常见的媒体格式是上传文件之时使用的:


multipart/form-data : 需要在表单中进行文件上传时,就需要使用该格式

5、问题


如果前端这边的accept接受的是application/json, */*所有格式类型,服务端content-type发送的是application/x-www-form-urlencoded 表单数据格式,前端接收数据会受影响吗?

来自ChatGPT的回答