PHP header函數設置http報文頭示例詳解

来源:http://www.cnblogs.com/zhenghongxin/archive/2016/02/24/5212690.html
-Advertisement-
Play Games

//定義編碼 header( 'Content-Type:text/html;charset=utf-8 '); //Atom header('Content-type: application/atom+xml'); //CSS header('Content-type: text/css');


//定義編碼
header( 'Content-Type:text/html;charset=utf-8 ');
 
//Atom
header('Content-type: application/atom+xml');
 
//CSS
header('Content-type: text/css');
 
//Javascript
header('Content-type: text/javascript');
 
//JPEG Image
header('Content-type: image/jpeg');
 
//JSON
header('Content-type: application/json');
 
//PDF
header('Content-type: application/pdf');
 
//RSS
header('Content-Type: application/rss+xml; charset=ISO-8859-1');
 
//Text (Plain)
header('Content-type: text/plain');
 
//XML
header('Content-type: text/xml');
 
//200 OK
header('HTTP/1.1 200 OK');
 
//設置一個404頭:
header('HTTP/1.1 404 Not Found');
 
//設置地址被永久的重定向
header('HTTP/1.1 301 Moved Permanently');
 
//轉到一個新地址
header('Location: http://www.example.org/');
 
//文件延遲轉向:
header('Refresh: 10; url=http://www.example.org/');
print 'You will be redirected in 10 seconds';
 
//當然,也可以使用html語法實現
//<meta http-equiv="refresh" content="10;http://www.example.org/ />
 
//override X-Powered-By: PHP:
header('X-Powered-By: PHP/4.4.0');
header('X-Powered-By: Brain/0.6b');
 
//文檔語言
header('Content-language: en');
 
//告訴瀏覽器最後一次修改時間
$time = time() - 60; // or filemtime($fn), etc
header('Last-Modified: '.gmdate('D, d M Y H:i:s', $time).' GMT');
 
//告訴瀏覽器文檔內容沒有發生改變
header('HTTP/1.1 304 Not Modified');
 
//設置內容長度
header('Content-Length: 1234');
 
//設置為一個下載類型
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="example.zip"');
header('Content-Transfer-Encoding: binary');
//load the file to send:
readfile('example.zip');
 
//對當前文檔禁用緩存
header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
header('Pragma: no-cache');
 
//設置內容類型:
header('Content-Type: text/html; charset=iso-8859-1');
header('Content-Type: text/html; charset=utf-8');
header('Content-Type: text/plain'); //純文本格式
header('Content-Type: image/jpeg'); //JPG***
header('Content-Type: application/zip'); // ZIP文件
header('Content-Type: application/pdf'); // PDF文件
header('Content-Type: audio/mpeg'); // 音頻文件
header('Content-Type: application/x-shockw**e-flash'); //Flash動畫
 
//顯示登陸對話框
header('HTTP/1.1 401 Unauthorized');
header('WWW-Authenticate: Basic realm="Top Secret"');
print 'Text that will be displayed if the user hits cancel or ';
print 'enters wrong login data';


#附:HTTP header 詳解

Requests部分

Header解釋示例
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 QWxhZGRpbjpvcGVuIHNlc2FtZQ==
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 2010 08:12:31 GMT
Expect 請求的特定的伺服器行為 Expect: 100-continue
From 發出請求的用戶的Email From: [email protected]
Host 指定請求的伺服器的功能變數名稱和埠號 Host: www.zcmhi.com
If-Match 只有請求內容與實體相匹配才有效 If-Match: “737060cd8c284d8af7ad3082f209582d”
If-Modified-Since 如果請求的部分在指定時間之後被修改則請求成功,未被修改則返回304代碼 If-Modified-Since: Sat, 29 Oct 2010 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 2010 19:43:31 GMT
Max-Forwards 限制信息通過代理和網關傳送的時間 Max-Forwards: 10
Pragma 用來包含實現特定的指令 Pragma: no-cache
Proxy-Authorization 連接到代理的授權證書 Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Range 只請求實體的一部分,指定範圍 Range: bytes=500-999
Referer 先前網頁的地址,當前請求網頁緊隨其後,即來路 Referer: http://www.zcmhi.com/archives/71.html
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

Responses 部分  

Header解釋示例
Accept-Ranges 表明伺服器是否支持指定範圍請求及哪種類型的分段請求 Accept-Ranges: bytes
Age 從原始伺服器到代理緩存形成的估算時間(以秒計,非負) Age: 12
Allow 對某網路資源的有效的請求行為,不允許則返回405 Allow: GET, HEAD
Cache-Control 告訴所有的緩存機制是否可以緩存及哪種類型 Cache-Control: no-cache
Content-Encoding web伺服器支持的返回內容壓縮編碼類型。 Content-Encoding: gzip
Content-Language 響應體的語言 Content-Language: en,zh
Content-Length 響應體的長度 Content-Length: 348
Content-Location 請求資源可替代的備用的另一地址 Content-Location: /index.htm
Content-MD5 返回資源的MD5校驗值 Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ==
Content-Range 在整個返回體中本部分的位元組位置 Content-Range: bytes 21010-47021/47022
Content-Type 返回內容的MIME類型 Content-Type: text/html; charset=utf-8
Date 原始伺服器消息發出的時間 Date: Tue, 15 Nov 2010 08:12:31 GMT
ETag 請求變數的實體標簽的當前值 ETag: “737060cd8c284d8af7ad3082f209582d”
Expires 響應過期的日期和時間 Expires: Thu, 01 Dec 2010 16:00:00 GMT
Last-Modified 請求資源的最後修改時間 Last-Modified: Tue, 15 Nov 2010 12:45:26 GMT
Location 用來重定向接收方到非請求URL的位置來完成請求或標識新的資源 Location: http://www.zcmhi.com/archives/94.html
Pragma 包括實現特定的指令,它可應用到響應鏈上的任何接收方 Pragma: no-cache
Proxy-Authenticate 它指出認證方案和可應用到代理的該URL上的參數 Proxy-Authenticate: Basic
refresh 應用於重定向或一個新的資源被創造,在5秒之後重定向(由網景提出,被大部分瀏覽器支持)

 

Refresh: 5; url=

http://www.zcmhi.com/archives/94.html

Retry-After 如果實體暫時不可取,通知客戶端在指定時間之後再次嘗試 Retry-After: 120
Server web伺服器軟體名稱 Server: Apache/1.3.27 (Unix) (Red-Hat/Linux)
Set-Cookie 設置Http Cookie Set-Cookie: UserID=JohnDoe; Max-Age=3600; Version=1
Trailer 指出頭域在分塊傳輸編碼的尾部存在 Trailer: Max-Forwards
Transfer-Encoding 文件傳輸編碼 Transfer-Encoding:chunked
Vary 告訴下游代理是使用緩存響應還是從原始伺服器請求 Vary: *
Via 告知代理客戶端響應是通過哪裡發送的 Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)
Warning 警告實體可能存在的問題 Warning: 199 Miscellaneous warning
WWW-Authenticate 表明客戶端請求實體應該使用的授權方案 WWW-Authenticate: Basic
原文  http://blog.csdn.net/wyqwclsn/article/details/41082083
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 指針: 一、聲明 一個 int 類型的 指針 然後 賦值。 二、聲明中直接賦值。 三、空指針 四、懸空指針 野指針: 懸空指針本質上就是 聲明瞭一個 指針類型的變數【如:int *p】,並且沒有賦值。在沒有賦初值的情況下,利用這個指針進行修改【如:*p=100】。就相當於這個指針指向了一個未知的地址
  • 之前在[譯]更快的方式實現PHP數組去重討論了使用array_flip後再調用array_keys函數替換直接調用array_unique函數實現數組去重性能較好。由於原文沒有給出源碼分析和測試的結果,導致給讀者造成迷惑,在此說聲抱歉。為瞭解開讀者的疑惑,筆者承諾了會補上源碼的分析,現在此補上詳細的...
  • 原文:https://nikic.github.io/2012/03/28/Understanding-PHPs-internal-array-implementation.html 歡迎來到”給PHP開發者的PHP源碼”系列的第四部分,這一部分我們會談論PHP數組在內部是如何表示和在代碼庫里使用...
  • 在PHP的核心代碼中,變數被稱為ZVAL。這個結構之所以那麼重要是有原因的,不僅僅是因為PHP使用弱類型而C使用強類型。那麼ZVAL是怎麼解決這個問題的呢?要回答這個問題,我們需要認真的查看ZVAL類型的定義。要查看這個定義,讓我們嘗試在lxr頁面的定義搜索框里搜索zval。乍一眼看去,我們似乎找不...
  • /** * 計算百分比. * @param dividend 被除數 * @param divisor 除數 * @return 結果 */ private String getPercent(long dividend, long divisor) { NumberFormat format =
  • ant匹配規則;PathMatcher介面;通過測試用例看AntPathMatcher的使用
  • 使用@RequestMapping註解時,配置的信息最後都設置到了RequestMappingInfo中. RequestMappingInfo封裝了PatternsRequestCondition,RequestMethodsRequestCondition,ParamsRequestCondit...
  • 需求表均同springmvc案例 此處只是使用maven 註意,以下所有需要建立在你的eclipse等已經集成配置好了maven了,說白了就是新建項目的時候已經可以找到maven了 沒有的話需要安裝maven 1.新建maven項目,如果不在上面,請到other裡面去找一下 2,進入maven項目之
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...