当前位置:首页 > Web开发 > 正文

http请求头中的content

2024-03-31 Web开发

在HTTP请求中,我们每天都在使用Content-Type来指定差别格局的请求信息,但是却很少有人去全面了解Content-Type中允许的值有几多,因此这里来了解一下Content-Type的可用值,以及在Spring MVC中如何使用它们来映射请求信息。

什么是Content-Type

要知道什么是Content-Type,首先要了解什么是Internet Media Type。Internet Media Type即互联网媒体类型,也叫做MIME类型,使用两部分标识符来确定一个类型。在HTTP协议动静头中,使用Content-Type来暗示具体请求中的媒体类型信息,意思就是说,Content-Type是Internet Media Type在HTTP协议中的别称。

Content-Type的格局

type/subtype(;parameter)? type

上面是Content-Type的格局,可以拆解为三个部分,分袂是主类型(type)、子类型(subtype)和参数(parameter)。

主类型(type)

主类型可以是任意的字符串,好比text。如果是*号则代表所有类型。

子类型(subtype)

子类型可以是任意的字符串,好比html。如果是*号则代表所有类型。

参数(parameter)

参数是可选的,可以在Content-Type中插手一些特殊的参数,好比Accept请求头的参数,常见的有用于设置字符编码的charset参数。

Content-Type: text/html;charset:utf-8;

Content-Type中常见的媒体格局类型

以text开头的媒体格局类型:

text/html: HTML格局。

text/plain:纯文本格局。

text/xml:  XML格局。

以image开头的媒体格局类型:

image/gif:gif图片格局。

image/jpeg:jpg图片格局。

image/png:png图片格局。

以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格局发送随处事器(表单默认的提交数据的格局)。

此外还有一种常见的媒体格局是上传文件之时使用的:

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

以上就是我们在日常的开发中,经常会用到的若干Content-Type的内容格局。

Spring MVC中关于Content-Type类型信息的使用

在Spring MVC中,主要就是使用@RequestMapping注解来措置惩罚惩罚请求,因此首先我们来看看@RequestMapping注解的Class界说。

@Target({ElementType.METHOD, ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Mapping public @interface RequestMapping { String[] value() default {}; RequestMethod[] method() default {}; String[] params() default {}; String[] headers() default {}; String[] consumes() default {}; String[] produces() default {}; }

下面对注解供给的参数进行简单解析。

value:指定请求的实际地点, 好比/yanggb/info之类的请求路由。

method: 指定请求的method类型, 好比GET、POST、PUT、DELETE等。

consumes:指定措置惩罚惩罚请求的提交内容类型(Content-Type),例如application/json、text/html;等。

produces:指定返回的内容类型,仅当request请求头中的(Accept)类型中包罗该指定类型才返回。

params:指定request中必需包罗某些参数值,才让该要领措置惩罚惩罚。

headers:指定request中必需包罗某些指定的header值,才华让该要领措置惩罚惩罚请求。

此中,consumes、produces可以使用Content-type中的信息对不需要的信息进行过滤,仅接受需要的数据;headers则可以使用Content-Type中的信息对请求进行过滤和判断。

Request Headers和Response Headers中的候选属性

这里列举出Request Headers(请求头)和Response Headers(响应头)中的候选属性。

Request Headers的候选属性

候选属性说明示例
Accept   指定客户端能够接收的内容类型   Accept: text/plain, text/html  
Accept-Charset   浏览器可以接受的字符编码集   Accept-Charset: iso-8859-5  
Accept-Encoding   指定浏览器可以撑持的web处事器返回内容压缩编码类型   Accept-Encoding: compress, gzip  
Accept-Language   浏览器可接受的语言   Accept-Language: en,zh  
Accept-Ranges   可以请求网页实体的一个或者多个子范畴字段   Accept-Ranges: bytes  
Authorization   HTTP授权的授权证书   Authorization: Basic QWxhZLRpbjpvcGVuIHNoc2FtZQ==  
Cache-Control   指定请求和响应遵循的缓存机制   Cache-Control: no-cache  
Connection   暗示是否需要长期连接。(HTTP 1.1默认进行长期连接)   Connection: close  
Cookie   HTTP请求发送时,会把生存在该请求域名下的所有cookie值一起发送给web处事器   Cookie: $Version=1; Skin=new;  
Content-Length   请求的内容长度   Content-Length: 348  
Content-Type   请求的与实体对应的MIME信息   Content-Type: application/x-www-form-urlencoded  
Date   请求发送的日期和时间   Date: Tue, 15 Nov 2018 08:22:31 GMT  
Expect   请求的特定的处事器行为   Expect: 100-continue  
From   发出请求的用户的Email   From: [email protected]  
Host   指定请求的处事器的域名和端标语   Host:  
If-Match   只有请求内容与实体相匹配才有效   If-Match: "737060ff8c284d8af7ad2082f209582d"  
If-Modified-Since   如果请求的部分在指按时间之后被改削则请求告成,未被改削则返回304代码   If-Modified-Since: Sat, 29 Oct 2018 19:43:31 GMT  
If-None-Match   如果内容未转变返回304代码,参数为处事器先前发送的Etag,与处事器回应的Etag对照判断是否转变   If-None-Match: "737060cd8c284d8af7ad3082f209582d"  
If-Range   如果实体未转变,处事器发送客户端丢掉的部分,否则发送整个实体。参数也为Etag   If-Range: "737060cd8c284d8af7ad3082f209582d"  
If-Unmodified-Since   只在实体在指按时间之后未被改削才请求告成   If-Unmodified-Since: Sat, 29 Oct 2018 19:23:11 GMT  
Max-Forwards   限制信息通过代办代理和网关传送的时间   Max-Forwards: 10  
Pragma   用来包罗实现特定的指令   Pragma: no-cache  
Proxy-Authorization   连接到代办代理的授权证书   Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==  
Range   只请求实体的一部分,指定范畴   Range: bytes=500-999  
Referer   先前网页的地点,当前请求网页紧随其后,即来路   Referer:  
TE   客户端愿意接受的传输编码,并通知处事器接受接受尾加头信息   TE: trailers,deflate;q=0.5  
Upgrade   向处事器指定某种传输协议以便处事器进行转换(如果撑持)   Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11  
User-Agent   User-Agent的内容包罗发出请求的用户信息   User-Agent: Mozilla/5.0 (Linux; X11)  
Via   通知中间网关或代办代理处事器地点,通信协议   Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)  
Warning   关于动静实体的警告信息   Warn: 199 Miscellaneous warning  

可以看到,Content-Type是Request Headers中的一个候选属性。

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/31140.html