Accept一般作为请求首部,它的作用是告知服务器它可以使用或者想要什么已经不能使用或者不想要什么。下面是几个Accept首部以及它们的作用:
首部 作用Accept 告知服务器客户端可以接收和处理哪些媒体类型
Accept-Charset 告知服务器客户端可以接收和处理哪些字符集
Accept-Encoding 告知服务器客户端可以接收和处理哪些编码方式
Accept-Language 告知服务器客户端可以接收和处理哪些语言
Accept首部用于指定接收媒体类类型的时候,需要指定类型和子类型,这是因为媒体类型(MIME)本来就是按二级分类的,例如JPEG图像的媒体类型是image/jpeg,类型是image,子类型是jpeg。MIME已经定义了八种顶级的类型:
text/*表示人可读的文字。
image/*表示图片。
model/*表示3D模型,如VRML文件。
audio/*表示音频。
video/*表示多媒体图片、视频,也可能是音频。
application/*表示二进制数据。
message/*表示协议特定的信封,如Email消息和HTTP响应。
muitipart/*表示多个文档和资源的容器。
举个例子,如果客户端只接收JSON数据:
Accept: application/json RefererReferer一般作为请求首部,它提供了包含当前请求的URL的文档的URL,也就是当前请求的上一个来源的文档,一般用作防盗链。例如?name=doge,服务器在处理此请求的时候,需要判断Referer是否为,的上一个文档来源必须是,否则服务器应该拒绝该请求。
CookieCookie一般作为请求首部,客户端通过它向服务器传送一个或者多个令牌,原则上Cookie并不是安全的首部,Cookie的内容也会缓存在客户端。一般在Servlet应用中,Cookie是识别当前用户,实现持久会话的最佳方式。从过期时间分类来看,Cookie分为会话Cookie和持久Cookie,会话Cookie的过期时间比较短,持久Cookie的过期时间比较长或者不会过期,Cookie的过期策略等控制应该由服务端控制。由于Cookie是直接暴露在客户端,一般不能使用Cookie存放敏感的数据,需要存放敏感数据可以考虑使用数据加密处理。
Cookie: uid=10086; domain="localhost" Set-CookieSet-Cookie一般作为响应首部,和Cookie对应,表示服务器设置成功的Cookie。
Cache-ControlCache-Control一般作为请求首部,告知服务器对当前的请求的响应结果进行缓存相关操作。Cache-Control支持的值比较多,这里不展开细节,常见的如no-cache表示在没有成功通过源站校验的情况下不得使用缓存,如max-age表示响应结果需要缓存到指定的最大时间。
Content-TypeContent-Type是通用首部,可以作为请求首部或者响应首部,它的作用是告知服务器或者客户端当前请求或者响应结果的内容(媒体)类型。
Content-LengthContent-Length是通用首部,可以作为请求首部或者响应首部,它的作用是告知服务器或者客户端当前请求或者响应数据体的长度。
Content-EncodingContent-Encoding一般作为响应首部,与Accept-Encoding对应,用于服务器告知客户端当前响应结果的内容编码。
Content-LanguageContent-Language一般作为响应首部,与Accept-Language对应,用于服务器告知客户端当前响应结果的内容语言。
Connection