小伙伴们,新年快乐。这是我2019年的第二篇文章 哈哈哈,感谢阅读。在前不久的2018年我分享了不少关于http和https的知识,可以看一下,喜欢的话,可以点赞,可以关注。”无缝植入广告“?。哈哈废话不说,看文章
今天我要分享的实体首部字段,在之前我分享了《请求首部字段-四大首部字段之一》《通用首部字段-四大首部字段之一》《响应首部字段-四大首部字段之一》《简介常用47个首部字段》,都是为了《简介常用47个首部字段》这篇文章才写了其他的四篇文章,因为咱们都是讲究的人,哈哈,《简介常用47个首部字段》中只是大概讲了47个字段的意思,没有详解,感觉是在敷衍,接下来就分享四大首部字段。废话不说,进入正题。
实体首部字段可想而知,就是用来表示实体内容和要求的字段,今天咱们就看看常用的10个,实体首部字段,10个!!!?,小伙不要怕,常用的请求字段是19个呢,哈哈?,其实大家阅读完基本就会记住。不信的话看看试试
1、 Allow(英文意思:”允许;给予;认可“)
这个字段也是很有意思,它是来告诉客户端,服务器能接受的http请求方法,比如GET、POST、DELETE、OPTIONS、PUT等,当客户端使用的方法,服务器不能够支持的时候就会响应405 Method Not Allowed,这个时候还会把支持的方法以值的方式放在Allow后面,来通知客户端,使用支持方法。
2、Last-Modified(英文意思:”最后的更改“)
大家看到这个实体首部字段的时候会不会想到请求首部字段的 If-Modified-Since和If-Unmodified-Since,聪明的小伙伴感觉已将知道了些什么,有关面试常问的304状态码时就是在考察 If-Modified-Since和Last-Modified的作用。
简介一下每个资源创建或者修改时都会创建一个Last-Modified时间值,当客户端请求时,实体首部字段就会返回这个Last-Modified,客户端就会把Last-Modified的值存下来,当客户端再次发起请求的时候,就会把该值赋值给请求字段的 If-Modified-Since,当服务器看到If-Modified-Since请求字段时,就会和服务器资源的Last-Modified值进行比较如果一样就会返回304 走缓存,如果不一样就会返回新的资源 200 ok(一不小心又扯多了)
3、Expires(英文意思:”到期;有效期“)
这个字段有会扯到缓存,这字段会告诉客户端资源缓存的到期时间Last-Modified: Wed, 23 May 2012 09:59:55 GMT,如果不想走缓存,就把这个时间值设置场通用首部字段data报文创建时间一致,我会在不就的将来,单独分享一下 有关”通用首部字段--Cache-Control“的详解
4、Content-Type
这个字段和请求首部Accept字段的作用类似,Accept告诉服务器可以接受的媒体类型,哪Content-Type则是告诉客户端实体内容选择什么样的编码格式
5、Content-Length
告知客户端实体内容的大小,以bytes为单位
6、Content-Range
这个字段是只针对范围请求的时候作为响应,来告知客户端响应实体符不符合客户端的要求。
7、Content-Encoding
告知客户端,实体内容选择的编码格式
8、Content-MD5
这个字段是非常有意思的一个字段,它被创建的目的就是为了防止报文主体内容被篡改的,使用MD5算法生产的值,客户端会接收到Content-MD5时候会执行同样的MD5算法产生一个值然后和Content-MD5值做比较。
但是有没有考虑到如果报文都可以别篡改,那个实体首部Content-MD5当然也可以被改变,那么这个字段就失去了意义 ?,有关请求安全可以查看《https的安全通信机制》
9、Content-Language
告知客户端,实体内容选择的自然语言
10、Content-Location
告知客户端,实体内容来着与那个资源服务器