下面是來自維基百科文章的摘錄:HTTP請求URL是否不是HTTP請求標頭的一部分?
與其中只有URL和頭是 向服務器發送GET請求方法,POST請求還包括郵件正文。
此基礎上,它看起來像URL從頭單獨發送,但如果這是這樣,爲什麼我們在PHP中使用的header()
方法來設置URL重定向到?
header("Location: http://google.com");
下面是來自維基百科文章的摘錄:HTTP請求URL是否不是HTTP請求標頭的一部分?
與其中只有URL和頭是 向服務器發送GET請求方法,POST請求還包括郵件正文。
此基礎上,它看起來像URL從頭單獨發送,但如果這是這樣,爲什麼我們在PHP中使用的header()
方法來設置URL重定向到?
header("Location: http://google.com");
當您想從瀏覽器瀏覽URL時,請輸入URL。瀏覽器會將URL像這樣的HTTP請求中:
GET /path/to/resource.php?var=data1&othervar=data2 HTTP/1.1
Host: example.com
Connection: keep-alive
"empty line"
然後Web服務器爲您提供了這樣一個答案:
HTTP/1.0 200 OK
Date: Fri, 02 Sep 2011 14:37:36 GMT
Server: Apache
Cache-Control: private, s-maxage=0, max-age=0, must-revalidate
Content-Encoding: gzip
Vary: Accept-Encoding
Content-Length: 149
Content-Type: text/javascript; charset=utf-8
Connection: keep-alive
"empty line"
"149 bytes of Response data"
每一行這樣的「頁眉名稱:header_value \ r \ n 「是一個標題。
PHP頭函數在將響應發送到用戶的瀏覽器之前向響應添加一個頭。
在你的榜樣標題是:
Location: http://google.com
,它只是「空行」(這是隻包含一個\ r \ n行)之前的最後一個頭之後加入。
POST請求是從GET請求不同,因爲你有「空行」之後的請求體):
POST /path/to/resource.php HTTP/1.1
Host: example.com
Connection: keep-alive
Content-Length: "number of bytes in the body"
"empty line"
variable=data&othervar=data2
最後一個HTTP請求時這樣的:
PS。行始終以「\ r \ n」字節關閉(「空行」僅由這兩個字節組成)。
請求頭中是第一個引號「GET/path ...'的一部分嗎? –
不是真的,「GET ... HTTP/1.1」和「POST ... HTTP/1.1」是REQUEST行,其後是請求標頭。 – CaNNaDaRk
謝謝!這使得它更清晰。 –
header()
添加報頭到該文件。
所以,如果你想設置的Content-Type:
header("Content-type: text/javascript");
等等......
Location
是另一頭,你可以設置和/或與PHP header()
功能改變
從doc:
第二斯佩恰l情況是「位置:」標題。除非已經設置了201或3xx狀態碼,否則它不僅會將此標題發送回瀏覽器,還會向瀏覽器返回REDIRECT(302)狀態碼。
有響應頭和請求頭
http://en.wikipedia.org/wiki/List_of_HTTP_header_fields
您設置在PHP位置報頭作爲對請求的響應。瀏覽器查看響應並作出相應處理。
所以你去了原始頁面,位置標題告訴瀏覽器去別的地方。
您正在混淆HTTP請求和HTTP響應。 PHP頭函數爲RESPONSE頭添加了一個新頭,GET和POST是REQUEST方法。 – CaNNaDaRk
啊......這是有道理的。 –
在我的回答中,您有一個REQUEST和RESPONSE的例子,並解釋了標題是什麼。 – CaNNaDaRk