1. 程式人生 > >什麼是HTTP Headers?

什麼是HTTP Headers?

什麼是HTTP Headers

HTTP是“Hypertext Transfer Protocol”的所寫,整個全球資訊網都在使用這種協議,幾乎你在瀏覽器裡看到的大部分內容都是通過http協議來傳輸的,比如這篇文章。

HTTP Headers是HTTP請求和相應的核心,它承載了關於客戶端瀏覽器,請求頁面,伺服器等相關的資訊。

示例

當你在瀏覽器位址列裡鍵入一個url,你的瀏覽器將會類似如下的http請求:
GET /tutorials/other/top-20-mysql-best-practices/ HTTP/1.1
Host: net.tutsplus.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Cookie: PHPSESSID=r2t5uvjq435r4q7ib3vtdjq120
Pragma: no-cache
Cache-Control: no-cache


第一行被稱為“Request Line” 它描述的是這個請求的基本資訊,剩下的就是HTTP headers了。

請求完成之後,你的瀏覽器可能會收到如下的HTTP響應:

HTTP/1.x 200 OK
Transfer-Encoding: chunked
Date: Sat, 28 Nov 2009 04:36:25 GMT
Server: LiteSpeed
Connection: close
X-Powered-By: W3 Total Cache/0.8
Pragma: public
Expires: Sat, 28 Nov 2009 05:36:25 GMT
Etag: "pub1259380237;gz"
Cache-Control: max-age=3600, public
Content-Type: text/html; charset=UTF-8
Last-Modified: Sat, 28 Nov 2009 03:50:37 GMT
X-Pingback: http://net.tutsplus.com/xmlrpc.php
Content-Encoding: gzip
Vary: Accept-Encoding, Cookie, User-Agent
<!-- ... rest of the html ... -->

第一行呢被稱為“Status Line”,它之後就是http headers,空行完了就開始輸出內容了(在這個案例中是一些html輸出)。

但你檢視頁面原始碼卻不能看到HTTP headers,雖然它們同你能看到的東西一起被傳送至瀏覽器了。

這個HTTP請求也發出了一些其它資源的接收請求,例如圖片,css檔案,js檔案等等。

下面我們來看看細節。

怎樣才能看到HTTP Headers

下面這些FireFox擴充套件能夠幫助你分析HTTP headers:

3. 在PHP中:

文章下面將會看到一些使用php示範的例子。

HTTP Request 的結構

被稱作“first line”的第一行包含三個部分:

  • “method” 表明這是何種型別的請求. 最常見的請求型別有 GET, POST 和 HEAD.
  • “path” 體現的是主機之後的路徑. 例如,當你請求 “http://net.tutsplus.com/tutorials/other/top-20-mysql-best-practices/”時 , path 就會是 “/tutorials/other/top-20-mysql-best-practices/”.
  • “protocol” 包含有 “HTTP” 和版本號, 現代瀏覽器都會使用1.1.

剩下的部分每行都是一個“Name:Value”對。它們包含了各式各樣關於請求和你瀏覽器的資訊。例如”User-Agent“就表明了你瀏覽器版本和你所用的作業系統。”Accept-Encoding“會告訴伺服器你的瀏覽可以接受類似gzip的壓縮輸出。

這些headers大部分都是可選的。HTTP 請求甚至可以被精簡成這樣子:

GET /tutorials/other/top-20-mysql-best-practices/ HTTP/1.1
Host: net.tutsplus.com

並且你仍舊可以從伺服器收到有效的響應。

請求型別

三種最常見的請求型別是:GET,POST 和 HEAD ,從html的編寫過程中你可能已經熟悉了前兩種。

GET:獲取一個文件

大部分被傳輸到瀏覽器的html,images,js,css, … 都是通過GET方法發出請求的。它是獲取資料的主要方法。

例如,要獲取Nettuts+ 的文章,http request的第一行通常看起來是這樣的:

GET /tutorials/other/top-20-mysql-best-practices/ HTTP/1.1

一旦html載入完成,瀏覽器將會發送GET 請求去獲取圖片,就像下面這樣:

GET /wp-content/themes/tuts_theme/images/header_bg_tall.png HTTP/1.1

表單也可以通過GET方法傳送,下面是個例子:

<form action="foo.php" method="GET">
First Name: <input name="first_name" type="text" />
Last Name: <input name="last_name" type="text" />
<input name="action" type="submit" value="Submit" />
</form>

當這個表單被提交時,HTTP request 就會像這樣:

GET /foo.php?first_name=John&last_name=Doe&action=Submit HTTP/1.1
...

你可以將表單輸入通過附加進查詢字串的方式傳送至伺服器。

POST:傳送資料至伺服器

儘管你可以通過GET方法將資料附加到url中傳送給伺服器,但在很多情況下使用POST傳送資料給伺服器更加合適。通過GET傳送大量資料是不現實的,它有一定的侷限性。

用POST請求來發送表單資料是普遍的做法。我們來吧上面的例子改造成使用POST方式:

<form action="foo.php" method="POST">
First Name: <input name="first_name" type="text" />
Last Name: <input name="last_name" type="text" />
<input name="action" type="submit" value="Submit" />
</form>

提交這個表單會建立一個如下的HTTP 請求:

POST /foo.php HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://localhost/test.php
Content-Type: application/x-www-form-urlencoded
Content-Length: 43
first_name=John&last_name=Doe&action=Submit

這裡有三個需要注意的地方:

  • 第一行的路徑已經變為簡單的 /foo.php , 已經沒了查詢字串。
  • 新增了 Content-Type 和 Content-Lenght 頭部,它提供了傳送資訊的相關資訊.
  • 所有資料都在headers之後,以查詢字串的形式被髮送.

POST方式的請求也可用在AJAX,應用程式,cURL … 之上。並且所有的檔案上傳表單都被要求使用POST方式。

HEAD:接收頭部資訊

HEAD和GET很相似,只不過HEAD不接受HTTP響應的內容部分。當你傳送了一個HEAD請求,那就意味著你只對HTTP頭部感興趣,而不是文件本身。

這個方法可以讓瀏覽器判斷頁面是否被修改過,從而控制快取。也可判斷所請求的文件是否存在。

例如,假如你的網站上有很多連結,那麼你就可以簡單的給他們分別傳送HEAD請求來判斷是否存在死鏈,這比使用GET要快很多。

http響應結構

當瀏覽器傳送了HTTP請求之後,伺服器就會通過一個HTTP response來響應這個請求。如果不關心內容,那麼這個請求看起來會是這樣的:

第一個有價值的資訊就是協議。目前伺服器都會使用 HTTP/1.x 或者 HTTP/1.1。

接下來一個簡短的資訊代表狀態。程式碼200意味著我們的請求已經發送成功了,伺服器將會返回給我們所請求的文件,在頭部資訊之後。

我們都見過“404”頁面。當我向伺服器請求一個不存在的路徑時,伺服器就用用404來代替200響應我們。

餘下的響應內容和HTTP請求相似。這些內容是關於伺服器軟體的,頁面/檔案何時被修改過,mime type 等等…

同樣,這些頭部資訊也是可選的。

HTTP狀態碼

  • 200 用來表示請求成功.
  • 300 來表示重定向.
  • 400 用來表示請求出現問題.
  • 500 用來表示伺服器出現問題.

200 成功 (OK)

前文已經提到,200是用來表示請求成功的。

206 部分內容 (Partial Content)

如果一個應用只請求某範圍之內的檔案,那麼就會返回206.

這通常被用來進行下載管理,斷點續傳或者檔案分塊下載。

404 沒有找到 (Not Found)

很容易理解

401 未經授權 (Unauthorized)

受密碼保護的頁面會返回這個狀態。如果你沒有輸入正確的密碼,那麼你就會在瀏覽器中看到如下的資訊:

 

注意這只是受密碼保護頁面,請求輸入密碼的彈出框是下面這個樣子的:

403 被禁止(Forbidden)

如果你沒有許可權訪問某個頁面,那麼就會返回403狀態。這種情況通常會發生在你試圖開啟一個沒有index頁面的資料夾。如果伺服器設定不允許檢視目錄內容,那麼你就會看到403錯誤。

其它一些一些方式也會發送許可權限制,例如你可以通過IP地址進行阻止,這需要一些htaccess的協助。

order allow,deny
deny from 192.168.44.201
deny from 224.39.163.12
deny from 172.16.7.92
allow from all

302(或307)臨時移動(Moved Temporarily) 和 301 永久移動(Moved Permanently)

這兩個狀態會出現在瀏覽器重定向時。例如,你使用了類似 bit.ly 的網址縮短服務。這也是它們如何獲知誰點選了他們連結的方法。

302和301對於瀏覽器來說是非常相似的,但對於搜尋引擎爬蟲就有一些差別。打個比方,如果你的網站正在維護,那麼你就會將客戶端瀏覽器用302 重定向到另外一個地址。搜尋引擎爬蟲就會在將來重新索引你的頁面。但是如果你使用了301重定向,這就等於你告訴了搜尋引擎爬蟲:你的網站已經永久的移動 到了新的地址。

500 伺服器錯誤(Internal Server Error)

這個程式碼通常會在頁面指令碼崩潰時出現。大部分CGI指令碼都不會像PHP那樣輸出錯誤資訊給瀏覽器。如果出現了致命的錯誤,它們只會傳送一個500的狀態碼。這時需要檢視伺服器錯誤日誌來排錯。

完整的列表

你可以在這裡找到完整的HTTP 狀態碼說明。

HTTP Headers 中的 HTTP請求

現在我們來看一些在HTTP headers中常見的HTTP請求資訊。

所有這些頭部資訊都可以在PHP的$_SERVER陣列中找到。你也可以用getallheaders() 函式一次性獲取所有的頭部資訊。

Host

一個HTTP請求會發送至一個特定的IP地址,但是大部分伺服器都有在同一IP地址下託管多個網站的能力,那麼伺服器必須知道瀏覽器請求的是哪個域名下的資源。

Host: rlog.cn

這只是基本的主機名,包含域名和子級域名。

在PHP中,可以通過$_SERVER['HTTP_HOST'] 或 $_SERVER['SERVER_NAME']來檢視。

User-Agent

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)

這個頭部可以攜帶如下幾條資訊:

  • 瀏覽器名和版本號.
  • 作業系統名和版本號.
  • 預設語言.

這就是某些網站用來收集訪客資訊的一般手段。例如,你可以判斷訪客是否在使用手機訪問你的網站,然後決定是否將他們引導至一個在低解析度下表現良好的移動網站。

在PHP中,可以通過 $_SERVER['HTTP_USER_AGENT'] 來獲取User-Agent

if ( strstr($_SERVER['HTTP_USER_AGENT'],'MSIE 6') ) {
echo "Please stop using IE6!";
}

Accept-Language

Accept-Language: en-us,en;q=0.5

這個資訊可以說明使用者的預設語言設定。如果網站有不同的語言版本,那麼就可以通過這個資訊來重定向使用者的瀏覽器。

它可以通過逗號分割來攜帶多國語言。第一個會是首選的語言,其它語言會攜帶一個“q”值,來表示使用者對該語言的喜好程度(0~1)。

在PHP中用 $_SERVER["HTTP_ACCEPT_LANGUAGE"] 來獲取這一資訊。

if (substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2) == 'fr') {
header('Location: http://french.mydomain.com');
}

Accept-Encoding

Accept-Encoding: gzip,deflate

大部分的現代瀏覽器都支援gzip壓縮,並會把這一資訊報告給伺服器。這時伺服器就會壓縮過的HTML傳送給瀏覽器。這可以減少近80%的檔案大小,以節省下載時間和頻寬。

在PHP中可以使用 $_SERVER["HTTP_ACCEPT_ENCODING"] 獲取該資訊。 然後呼叫ob_gzhandler()方法時會自動檢測該值,所以你無需手動檢測。

// enables output buffering
// and all output is compressed if the browser supports it
ob_start('ob_gzhandler');

If-Modified-Since

如果一個頁面已經在你的瀏覽器中被快取,那麼你下次瀏覽時瀏覽器將會檢測文件是否被修改過,那麼它就會發送這樣的頭部:

If-Modified-Since: Sat, 28 Nov 2009 06:38:19 GMT

如果自從這個時間以來未被修改過,那麼伺服器將會返回“304 Not Modified”,而且不會再返回內容。瀏覽器將自動去快取中讀取內容

在PHP中,可以用$_SERVER['HTTP_IF_MODIFIED_SINCE'] 來檢測。

// assume $last_modify_time was the last the output was updated
// did the browser send If-Modified-Since header?
if(isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
// if the browser cache matches the modify time
if ($last_modify_time == strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
// send a 304 header, and no content
header("HTTP/1.1 304 Not Modified");
exit;
}
}

還有一個叫Etag的HTTP頭資訊,它被用來確定快取的資訊是否正確,稍後我們將會解釋它。

Cookie

顧名思義,他會發送你瀏覽器中儲存的Cookie資訊給伺服器。

Cookie: PHPSESSID=r2t5uvjq435r4q7ib3vtdjq120; foo=bar

它是用分號分割的一組名值對。Cookie也可以包含session id。

在PHP中,單一的Cookie可以訪問$_COOKIE陣列獲得。你可以直接用$_SESSION array獲取session變數。如果你需要session id,那麼你可以使用session_id()函式代替cookie。

echo $_COOKIE['foo'];
// output: bar
echo $_COOKIE['PHPSESSID'];
// output: r2t5uvjq435r4q7ib3vtdjq120
session_start();
echo session_id();
// output: r2t5uvjq435r4q7ib3vtdjq120

Referer

顧名思義, 頭部將會包含referring url資訊。

例如,我訪問Nettuts+的主頁並點選了一個連結,這個頭部資訊將會發送到瀏覽器:
Referer: http://net.tutsplus.com/

在PHP中,可以通過 $_SERVER['HTTP_REFERER'] 獲取該值。

if (isset($_SERVER['HTTP_REFERER'])) {
$url_info = parse_url($_SERVER['HTTP_REFERER']);
// is the surfer coming from Google?
if ($url_info['host'] == 'www.google.com') {
parse_str($url_info['query'], $vars);
echo "You searched on Google for this keyword: ". $vars['q'];
}
}
// if the referring url was:
// http://www.google.com/search?source=ig&hl=en&rlz=&=&q=http+headers&aq=f&oq=&aqi=g-p1g9
// the output will be:
// You searched on Google for this keyword: http headers

You may have noticed the word “referrer” is misspelled as “referer”. Unfortunately it made into the official HTTP specifications like that and got stuck.

Authorization

當一個頁面需要授權,瀏覽器就會彈出一個登陸視窗,輸入正確的帳號後,瀏覽器會發送一個HTTP請求,但此時會包含這樣一個頭部:

Authorization: Basic bXl1c2VyOm15cGFzcw==

包含在頭部的這部分資訊是base64 encoded。例如,base64_decode(‘bXl1c2VyOm15cGFzcw==’) 會被轉化為 ‘myuser:mypass’ 。

在PHP中,這個值可以用$_SERVER['PHP_AUTH_USER'] 和 $_SERVER['PHP_AUTH_PW'] 獲得。

更多細節我們會在WWW-Authenticate部分講解。

HTTP Headers 中的 HTTP響應

現在讓我瞭解一些常見的HTTP Headers中的HTTP響應資訊。

在PHP中,你可以通過 header() 來設定頭部響應資訊。PHP已經自動傳送了一些必要的頭部資訊,如 載入的內容,設定 cookies 等等… 你可以通過 headers_list() 函式看到已傳送和將要傳送的頭部資訊。你也可以使用headers_sent()函式來檢查頭部資訊是否已經被髮送。

Cache-Control

w3.org 的定義是:“The Cache-Control general-header field is used to specify directives which MUST be obeyed by all caching mechanisms along the request/response chain.” 其中“caching mechanisms” 包含一些你ISP可能會用到的 閘道器和代理資訊。

例如:

Cache-Control: max-age=3600, public

“public”意味著這個響應可以被任何人快取,“max-age” 則表明了該快取有效的秒數。允許你的網站被快取降大大減少下載時間和頻寬,同時也提高的瀏覽器的載入速度。

也可以通過設定 “no-cache”  指令來禁止快取:

Cache-Control: no-cache

Content-Type

這個頭部包含了文件的”mime-type”。瀏覽器將會依據該引數決定如何對文件進行解析。例如,一個html頁面(或者有html輸出的php頁面)將會返回這樣的東西:

Content-Type: text/html; charset=UTF-8

‘text’ 是文件型別,‘html’則是文件子型別。 這個頭部還包括了更多資訊,例如 charset。

如果是一個圖片,將會發送這樣的響應:

Content-Type: image/gif

瀏覽器可以通過mime-type來決定使用外部程式還是自身擴充套件來開啟該文件。如下的例子降呼叫Adobe Reader:

Content-Type: application/pdf

直接載入,Apache通常會自動判斷文件的mime-type並且新增合適的資訊到頭部去。並且大部分瀏覽器都有一定程度的容錯,在頭部未提供或者錯誤提供該資訊的情況下它會去自動檢測mime-type。

你可以在這裡找到一個常用mime-type列表。

在PHP中你可以通過 finfo_file() 來檢測檔案的ime-type。

Content-Disposition

這個頭部資訊將告訴瀏覽器開啟一個檔案下載視窗,而不是試圖解析該響應的內容。例如:

Content-Disposition: attachment; filename="download.zip"

他會導致瀏覽器出現這樣的對話方塊:

注意,適合它的Content-Type頭資訊同時也會被髮送

Content-Type: application/zip
Content-Disposition: attachment; filename="download.zip"

Content-Length

當內容將要被傳輸到瀏覽器時,伺服器可以通過該頭部告知瀏覽器將要傳送檔案的大小(bytes)。

Content-Length: 89123

對於檔案下載來說這個資訊相當的有用。這就是為什麼瀏覽器知道下載進度的原因。

例如,這裡我寫了一段虛擬指令碼,來模擬一個慢速下載。

// it's a zip file
header('Content-Type: application/zip');
// 1 million bytes (about 1megabyte)
header('Content-Length: 1000000');
// load a download dialogue, and save it as download.zip
header('Content-Disposition: attachment; filename="download.zip"');
// 1000 times 1000 bytes of data
for ($i = 0; $i < 1000; $i++) {
echo str_repeat(".",1000);
// sleep to slow down the download
usleep(50000);
}

結果將會是這樣的:

現在,我將Content-Length頭部註釋掉:

// it's a zip file
header('Content-Type: application/zip');
// the browser won't know the size
// header('Content-Length: 1000000');
// load a download dialogue, and save it as download.zip
header('Content-Disposition: attachment; filename="download.zip"');
// 1000 times 1000 bytes of data
for ($i = 0; $i < 1000; $i++) {
echo str_repeat(".",1000);
// sleep to slow down the download
usleep(50000);
}

結果就變成了這樣:

這個瀏覽器只會告訴你已下載了多少,但不會告訴你總共需要下載多少。而且進度條也不會顯示進度。

Etag

這是另一個為快取而產生的頭部資訊。它看起來會是這樣:

Etag: "pub1259380237;gz"

伺服器可能會將該資訊和每個被髮送檔案一起響應給瀏覽器。該值可以包含文件的最後修改日期,檔案大小或者檔案校驗和。瀏覽會把它和所接收到的文件一起快取。下一次當瀏覽器再次請求同一檔案時將會發送如下的HTTP請求:

If-None-Match: "pub1259380237;gz"

如果所請求的文件Etag值和它一致,伺服器將會發送304狀態碼,而不是2oo。並且不返回內容。瀏覽器此時就會從快取載入該檔案。

Last-Modified

顧名思義,這個頭部資訊用GMT格式表明了文件的最後修改時間:

Last-Modified: Sat, 28 Nov 2009 03:50:37 GMT

$modify_time = filemtime($file);
header("Last-Modified: " . gmdate("D, d M Y H:i:s", $modify_time) . " GMT");

它提供了另一種快取機制。瀏覽器可能會發送這樣的請求:

If-Modified-Since: Sat, 28 Nov 2009 06:38:19 GMT

在If-Modified-Since一節我們已經討論過了。

Location

這個頭部是用來重定向的。如果響應程式碼為 301 或者 302 ,伺服器就必須傳送該頭部。例如,當你訪問 http://www.nettuts.com 時瀏覽器就會收到如下的響應:

HTTP/1.x 301 Moved Permanently
...
Location: http://net.tutsplus.com/
...

在PHP中你可以通過這種方式對訪客重定向:
header('Location: http://net.tutsplus.com/');

預設會發送302狀態碼,如果你想傳送301,就這樣寫:

header('Location: http://net.tutsplus.com/', true, 301);

Set-Cookie

當一個網站需要設定或者更新你瀏覽的cookie資訊時,它就會使用這樣的頭部:

Set-Cookie: skin=noskin; path=/; domain=.amazon.com; expires=Sun, 29-Nov-2009 21:42:28 GMT
Set-Cookie: session-id=120-7333518-8165026; path=/; domain=.amazon.com; expires=Sat Feb 27 08:00:00 2010 GMT

每個cookie會作為單獨的一條頭部資訊。注意,通過js設定cookie將不會體現在HTTP頭中。

在PHP中,你可以通過setcookie()函式來設定cookie,PHP會發送合適的HTTP 頭。

setcookie("TestCookie", "foobar");

它會發送這樣的頭資訊:

Set-Cookie: TestCookie=foobar

如果未指定到期時間,cookie就會在瀏覽器關閉後被刪除。

WWW-Authenticate

一個網站可能會通過HTTP傳送這個頭部資訊來驗證使用者。當瀏覽器看到頭部有這個響應時就會開啟一個彈出窗。

WWW-Authenticate: Basic realm="Restricted Area"

它會看起來像這樣:

PHP手冊的一章中就有一段簡單的程式碼演示瞭如果用PHP做這樣的事情:

if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm="My Realm"');
header('HTTP/1.0 401 Unauthorized');
echo 'Text to send if user hits Cancel button';
exit;
} else {
echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>";
}

Content-Encoding

這個頭部通常會在返回內容被壓縮時設定。

Content-Encoding: gzip

在PHP中,如果你呼叫了ob_gzhandler()函式,這個頭部將會自動被設定。

相關推薦

[Angular] Read Custom HTTP Headers Sent by the Server in Angular

conf nor update names fault pan table tom color By default the response body doesn’t contain all the data that might be needed in y

關於http headers 在 Websockets client API 中的正確操作

pre hyperlink lin tar ESS proto pro send .html 由於這段時間要處理websocket一些問題,要在WebSocket連接過程中使用最基礎的用戶名密碼驗證,但是一直沒有找到怎麽處理,然後詳細閱讀了RFC6455文檔,然後才知道怎麽

http headers解析

轉自:https://www.cnblogs.com/ranjianxi/p/7494734.html 檔案資訊: Content-Type: application/x-javascript Content-Length: 2000 Content-Type:指定請求和響應的內容型別,如果未

Python - HTTP Headers

客戶端和伺服器之間的請求和響應涉及訊息中的標題和正文。標頭包含出現在通過TCP連線傳送的原始訊息開頭的協議特定資訊。使用空行將郵件正文與標題分隔開。 Cache-Control Cache-Control通用頭欄位用於指定所有快取系統必須遵守的指令。語法如下: Cache-

Secure your web application with these HTTP headers

Secure your web application with these HTTP headersAs we’ve seen in the previous parts of this series, servers can send HTTP headers to provide the client

什麼是HTTP Headers

什麼是HTTP Headers HTTP是“Hypertext Transfer Protocol”的所寫,整個全球資訊網都在使用這種協議,幾乎你在瀏覽器裡看到的大部分內容都是通過http協議來傳輸的,比如這篇文章。 HTTP Headers是HTTP請求和相應的核心,它承載了關於客戶端瀏覽器,請求頁面,

HTTP Headers參考使用

Requests Field name Description Example Accept Content-Types that are acceptable Accept: text/plain A

Http Headers各屬性的作用

Request Headers: 下圖是我訪問一個URL:http://www.hzau.edu.cn的一個header,根據具體例項來分析一下各部分的功能及其作用。 Accept 作用: 瀏覽器端可以接受的媒體型別, 例如: A

使用 Spring RestTemplate 呼叫 rest 服務時自定義請求頭(custom HTTP headers

        在 Spring 3.0 中可以通過 HttpEntity 物件自定義請求頭資訊,如:private static final String APPLICATION_PDF = "application/pdf"; RestTemplate restTe

呼叫webservice,出現錯誤:Uncaught SoapFault exception: [HTTP] Error Fetching http headers

    在PHP中呼叫webservice釋出的服務(__Call),報如下錯:     Fatal error: Uncaught SoapFault exception: [HTTP] Error Fetching http headers in Test.php:18

HTTP Headers

1、基本介紹 HTTP 訊息頭允許客戶端和伺服器通過 request和 response傳遞附加資訊。一個請求頭由名稱(不區分大小寫)後跟一個冒號“:”,冒號後跟具體的值(不帶換行符)組成。該值前面的引導空白會被忽略。 2、根據不同上下文,可將訊息頭分為:

http請求 headers 中的配置詳解

1.Accept 指定客戶端能夠接收的內容型別,內容型別中的先後次序表示客戶端接收的先後次序. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 2.

jquery fileupload設定http request headers

CORS是一個W3C標準,全稱是"跨域資源共享"(Cross-origin resource sharing)。 它允許瀏覽器向跨源伺服器,發出XMLHttpRequest請求,從而克服了AJAX只能同源使用的限制。 整個CORS通訊過程,都是瀏覽器自動完成,不需要使用者參與。對於開發者

http Get Post response headers

常見狀態碼: 200 OK                       //客戶端請求成功 400 Bad Request             //客戶端請求有語法錯誤,不能被伺服器所理解 401 Unauthorized              //請求未經授權

HTTP頭部資訊(Request Headers請求頭和Response Headers響應頭)

Request Header(請求頭) Accept:告訴伺服器,瀏覽器能夠處理的資料型別。(P575) Accept-Charset:瀏覽器能顯示的字符集。 Accept-Encoding:告訴伺服器,客戶機支援的資料壓縮格式。 Aceept-Language:瀏覽器當前設定的語言。

c++利用libcurl獲取http網頁的 response headers 等資訊

參考:http://www.update8.com/Program/C++/26438.html libcurl-7.32.0下載地址:http://download.csdn.net/detail/chuanyu/9226175 demo下載地址: http://dow

angular在HTML中去取字串,以及$http通過headers取值

寶寶們,我又來了,帶你在踩踩angular的坑,我是菜鳥,所以遇到的坑就多,記錄下來,分享出去幫助你們跳出來,下面我們就開始吧,我要巴拉巴拉嘍!!! 一、首先是怎麼在HTML中取字串 先上圖 這個是我請求時候,後臺大哥給我返回的資料,坑爹啊,說好的JSON格式呢???這還是我通過工

Angular 4/2 Http get() Parameters + Headers + URLSearchParams + RequestOptions Exam

https://www.concretepage.com/angular-2/angular-2-http-get-parameters-headers-urlsearchparams-requestoptions-example May 19, 2

http協議學習系列(請求頭---Request Headers)

HTTP最常見的請求頭如下: lAccept:瀏覽器可接受的MIME型別; lAccept-Charset:瀏覽器可接受的字符集; lAccept-Encoding:瀏覽器能夠進行解碼的資料編碼方式,比如gzip。Servlet能夠向支援gzip的瀏覽器返回經gzi

http協議學習-請求頭Request Headers

HTTP最常見的請求頭如下: lAccept:瀏覽器可接受的MIME型別; lAccept-Charset:瀏覽器可接受的字符集; lAccept-Encoding:瀏覽器能夠進行解碼的資料編碼方式,比如gzip。Servlet能夠向支援gzip的瀏覽器返回經gzi