• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 如何讓你的網站提速:Web緩存加速指南(5)

    發表于:2012-12-26來源:IT博客大學習作者:不詳點擊數: 標簽:網站
    如果這些模塊不可用,你需要聯系管理員,重新編譯并包含這些模塊。這些模塊有時候通過配置文件中把注釋掉的配置啟用,或者在編譯的時候增加-enab

      如果這些模塊不可用,你需要聯系管理員,重新編譯并包含這些模塊。這些模塊有時候通過配置文件中把注釋掉的配置啟用,或者在編譯的時候增加-enable -module=expires和-enable-module=headers選項(在apache 1.3和以上版本)。 參考Apache發布版中的INSTALL文件;

      Apache一旦啟用了相應的模塊,你就可以在.htaccess文件或者在服務器的access.conf文件中通過mod_expires設置副本什 么時候過期。你可設置過期從訪問時間或文件修改時間開始計算,并且應用到某種文件類型上或缺省設置,參考模塊的文檔獲得更多信息,或者遇到問題的時候向你身邊的apache專家討教。

      應用Cache-Control頭信息,你需要使用mod_headers,它將允許你設置任意的HTTP頭信息,參考mod_headers的文檔可以獲得更多資料;

      這里有個例子說明如何使用頭信息:

      .htaccess文件允許web發布者使用命令只在配置文件中用到的命令。他影響到所在目錄及其子目錄;問一下你的服務器管理員確認這個功能是否啟用了。

      ### 啟用 mod_expires

      ExpiresActive On

      ### 設置 .gif 在被訪問過后1個月過期。

      ExpiresByType image/gif A2592000

      ### 其他文件設置為最后修改時間1天后過期

      ### (用了另外的語法)

      ExpiresDefault "modification plus 1 day"

      ### 在index.html文件應用 Cache-Control頭屬性

      Header append Cache-Control "public, must-revalidate"

      注意: 在適當情況下mod_expires會自動計算并插入Cache-Control:max-age 頭信息

      Apache 2.0的配置和1.3類似,更多信息可以參考2.0的mod_expires和mod_headers文檔;

      Microsoft IIS服務器

      Microsoft的IIS可以非常容易的設置頭信息,注意:這只針對IIS 4.0服務器,并且只能在NT服務器上運行。

      為網站的一個區域設置頭信息,先要到管理員工具界面中,然后設置屬性。選擇HTTP Header選單,你會看到2個有趣的區域:啟用內容過期和定制HTTP頭信息。頭一個設置會自動配置,第二個可以用于設置Cache-Control頭信息;

      設置asp頁面的頭信息可以參考后面的ASP章節,也可以通過ISAPI模塊設置頭信息,細節請參考MSDN。

      Netscape/iPlanet企業服務器

      3.6版本以后,Netscape/iPlanet已經不能設置Expires頭信息了,他從3.0版本開始支持HTTP 1.1的功能。這意味著HTTP 1.1的緩存(代理服務器/瀏覽器)優勢都可以通過你對Cache-Control設置來獲得。

      使用Cache-Control頭信息,在管理服務器上選擇內容管理|緩存設置目錄。然后:使用資源選擇器,選擇你希望設置頭信息的目錄。設置完頭信息后,點擊“OK”。更多信息請參考Netscape/iPlanet企業服務器的手冊。

      緩存機制的實現:服務器端腳本

      需要注意的一點是:也許服務器設置HTTP頭信息比腳本語言更容易,但是兩者你都應該使用。

      因為服務器端的腳本主要是為了動態內容,他本身不產生可緩存的文件頁面,即使內容實際是可以緩存的。如果你的內容經常改變,但是不是每次頁面請求都改變, 考慮設置一個Cache-Control: max-age頭信息;大部分用戶會在短時間內多次訪問同一頁面。例如: 用戶點擊“后退”按鈕,即使沒有新內容,他們仍然要再次從服務器下載內容查看。

      CGI程序

      CGI腳本是生成內容最流行的方式之一,你可以很容易在發送內容之前的擴展HTTP頭信息;大部分CGI實現都需要你寫 Content-Type頭信息,例如這個Perl腳本:

      #!/usr/bin/perl

      print "Content-type: text/html\n";

      print "Expires: Thu, 29 Oct 1998 17:04:19 GMT\n";

      print "\n";

      ### 后面是內容體...

      由于都是文本,你可以很容易通過內置函數生成Expires和其他日期相關的頭信息。如果你使用Cache-Control: max-age;會更簡單;

      print "Cache-Control: max-age=600\n";

      這樣腳本可以在被請求后緩存10分鐘;這樣用戶如果按“后退”按鈕,他們不會重新提交請求;

      CGI的規范同時也允許客戶端發送頭信息,每個頭信息都有一個‘HTTP_’的前綴;這樣如果一個客戶端發送一個If-Modified-Since請求,就是這樣的:

      HTTP_IF_MODIFIED_SINCE = Fri, 30 Oct 1998 14:19:41 GMT

      參考一下cgi_buffer庫,一個自動處理ETag的生成和校驗的庫,生成Content-Length屬性和對內容進行gzip壓縮。在Python腳本中也只需加入一行;

      服務器端包含 Server Side Includes

      SSI(經常使用.shtml擴展名)是網站發布者最早可以生成動態內容的方案。通過在頁面中設置特別的標記,也成為一種嵌入HTML的腳本;

      大部分SSI的實現無法設置校驗器,于是無法緩存。但是Apache可以通過對特定文件的組執行權限設置實現允許用戶設置那種SSI可以被緩存;結合XbitHack調整整個目錄。更多文檔請參考mod_include文檔。

      PHP

      PHP是一個內建在web服務器中的服務器端腳本語言,當做為HTML嵌入式腳本,很像SSI,但是有更多的選項,PHP可以在各種Web服務器上設置為CGI模式運行,或者做為Apache的模塊;

      缺省PHP生成副本沒有設置校驗器,于是也無法緩存,但是開發者可以通過Header()函數來生成HTTP的頭信息;

      例如:以下代碼會生成一個Cache-Control頭信息,并設置為3天以后過期的Expires頭信息;

      Header("Cache-Control: must-revalidate");

      $offset = 60 * 60 * 24 * 3;

      $ExpStr = "Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT";

      Header($ExpStr);

      ?>

      記?。?Header()的輸出必須先于所有其他HTML的輸出;

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>