什么是請求報文:一個HTTP請求報文由請求行(request line)捏顺、請求頭部(header)勾拉、空行和請求數(shù)據(jù)4個部分組成炒考;
請求行由請求方法字段疆液、URL字段和HTTP協(xié)議版本字段3個字段組成颓鲜,它們用空格分隔表窘。例如,GET /index.html甜滨。
請求頭部由關(guān)鍵字/值對組成乐严,每行一對,關(guān)鍵字和值用英文冒號“:”分隔衣摩。請求頭部通知服務(wù)器有關(guān)于客戶端請求的信息昂验,典型的請求頭有:
User-Agent:產(chǎn)生請求的瀏覽器類型。
Accept:客戶端可識別的內(nèi)容類型列表艾扮。
Host:請求的主機名既琴,允許多個域名同處一個IP地址,即虛擬主機泡嘴。
空行
最后一個請求頭之后是一個空行甫恩,發(fā)送回車符和換行符,通知服務(wù)器以下不再有請求頭酌予。
請求數(shù)據(jù)
請求數(shù)據(jù)不在GET方法中使用磺箕,而是在POST方法中使用。POST方法適用于需要客戶填寫表單的場合抛虫。與請求數(shù)據(jù)相關(guān)的最常使用的請求頭是Content-Type和Content-Length松靡。
二、get請求和post請求的區(qū)別:
GET:通常情況下是從服務(wù)器獲取數(shù)據(jù)建椰,POST:通常是傳輸數(shù)據(jù)雕欺,GET只接受ASCLL字符,而POST沒有限制棉姐,GET在瀏覽器回退刷新時是無害的屠列,而POST會再次提交請求。
GET請求只能進行URL編碼伞矩,而POST請求支持多種編碼方式
GET傳輸比get傳輸安全脸哀,建議用戶重要信息傳輸時用POST請求
GET產(chǎn)生的URL地址可以被Bookmark,而POST不可以
GET請求會被瀏覽器主動cache扭吁,而POST不會,除非手動設(shè)置
GET請求參數(shù)會被完整保留在瀏覽器歷史記錄里,而POST中的參數(shù)不會被保留
GET請求在URL中傳送的參數(shù)是有長度限制的不能大于2KB侥袜,而POST傳送量較大一般默認(rèn)為不受限制但理論上IIS4中最大量為80KB蝌诡,在IIS5中為100KB
GET:可藏為書簽;POST:不可收藏書簽