http请求头中的content
在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