1

您好,我想首先分析和理解,然后优化我网站的 HTTP 标头响应。当我从网站管理员那里获取 Google 时,我得到的是:

HTTP/1.1 200 OK

Date: Fri, 26 Oct 2012 17:34:36 GMT // 消息发送的日期和时间

Server: Apache // 服务器的名字

P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM" // P3P电商需要这个吗?

ETag: c4241ffd9627342f5f6f8a4af8cc22ed // 标识资源的特定版本

Content-Encoding: gzip // 数据使用的编码类型

X-Content-Encoded-By: Joomla! 1.5 // 这明明是 Joomla 生成的,直接去掉就没有问题吧?

Expires: Mon, 1 Jan 2001 00:00:00 GMT // 给出响应被认为是陈旧的日期/时间:由于设置的日期已经过期,这会产生任何冲突吗?

Cache-Control: post-check=0, pre-check=0 // 这意味着网站没有被缓存?或者是什么?

Pragma: no-cache // 任何想法?

Set-Cookie: 5d962cb89e7c3329f024e48072fcb9fe=9qdp2q2fk3hdddqev02a9vpqt0; path=/ // 为什么我需要为任何页面设置cookie?

Last-Modified: Fri, 26 Oct 2012 17:34:37 GMT

X-Powered-By: PleskLin // 这个可以去掉吗?

Cache-Control: max-age=0, must-revalidate // 有 2 个缓存控制,这需要修复吗?哪个是prefected?max-age=0, must-revalidate? post-check=0, pre-check=0?

Keep-Alive: timeout=3, max=100 // 那是什么?

Connection: Keep-Alive

Transfer-Encoding: chunked // 这不应该是 deflate 或 gzip ??

Content-Type: text/html

4

1 回答 1

2
  • post-check 定义一个以秒为单位的时间间隔,在此之后必须检查实体的新鲜度。检查可能在向用户显示资源后进行,但确保在下一次往返中缓存的副本将是最新的。 http://www.rdlt.com/cache-control-post-check-pre-check.html
  • pre-check 定义一个以秒为单位的时间间隔,在该时间间隔之后,必须在向用户显示资源之前检查实体的新鲜度。
  • Pragma: no-cache 标头字段是用于请求的 HTTP/1.0 标头。这是浏览器告诉服务器和任何中间缓存它想要一个新版本的资源的一种方式,而不是让服务器告诉浏览器不要缓存资源。一些用户代理在响应中确实会注意此标头,但 HTTP/1.1 RFC 特别警告不要依赖此行为。
  • Set-Cookie:当用户以后浏览同一个网站时,网站可以检索cookie中存储的数据,通知网站用户之前的活动。 [1] Cookie 旨在成为网站记住网站状态或用户过去进行的活动的可靠机制。这可以包括单击特定按钮、登录或记录用户甚至在几个月或几年前访问过哪些页面。
  • X-Powered-By: 指定支持 Web 应用程序的技术(例如 ASP.NET、PHP、JBoss)。这属于常见的非标准响应标头,可以删除。
  • Keep-Alive 它旨在减少网站的连接数。与为网页中的每个图像/css/javascript 创建新连接不同,许多请求将重复使用相同的连接。
  • Transfer-Encoding:用于将实体安全地传输给用户的编码形式。当前定义的方法有:chunked、compress、deflate、gzip、identity。
于 2013-01-07T08:46:50.243 回答