go web by the one.一些常見知識記錄
阿新 • • 發佈:2018-05-04
錯誤 請求方法 odin 客戶 區別 賬號 AD ont -a
HTTP請求包(瀏覽器信息)
我們先來看看Request包的結構, Request包分為3部分,第一部分叫Request line(請求行), 第二部分叫Request header(請求頭),第三部分是body(主體)。header和body之間有個空行,請求包的例子所示:
GET /domains/example/ HTTP/1.1 //請求行: 請求方法 請求URI HTTP協議/協議版本 Host:www.iana.org //服務端的主機名 User-Agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4 //瀏覽器信息 Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 //客戶端能接收的mine Accept-Encoding:gzip,deflate,sdch //是否支持流壓縮 Accept-Charset:UTF-8,*;q=0.5 //客戶端字符編碼集 //空行,用於分割請求頭和消息體 //消息體,請求資源參數,例如POST傳遞的參數
HTTP協議定義了很多與服務器交互的請求方法,最基本的有4種,分別是GET,POST,PUT,DELETE。一個URL地址用於描述一個網絡上的資源,而HTTP中的GET, POST, PUT, DELETE就對應著對這個資源的查,增,改,刪4個操作。我們最常見的就是GET和POST了。GET一般用於獲取/查詢資源信息,而POST一般用於更新資源信息。
GET和POST的區別:
1.我們可以看到GET請求消息體為空,POST請求帶有消息體。
2.GET提交的數據會放在URL之後,以?
分割URL和傳輸數據,參數之間以&
相連,如EditPosts.aspx?name=test1&id=123456
。POST方法是把提交的數據放在HTTP包的body中。
3.GET提交的數據大小有限制(因為瀏覽器對URL的長度有限制),而POST方法提交的數據沒有限制。
4.GET方式提交數據,會帶來安全問題,比如一個登錄頁面,通過GET方式提交數據時,用戶名和密碼將出現在URL上,如果頁面可以被緩存或者其他人可以訪問這臺機器,就可以從歷史記錄獲得該用戶的賬號和密碼
HTTP的response包,他的結構如下:
HTTP/1.1 200 OK //狀態行 Server: nginx/1.0.8 //服務器使用的WEB軟件名及版本 Date:Date: Tue, 30 Oct 2012 04:14:25 GMT //發送時間 Content-Type: text/html //服務器發送信息的類型 Transfer-Encoding: chunked //表示發送HTTP包是分段發的 Connection: keep-alive //保持連接狀態 Content-Length: 90 //主體內容長度 //空行 用來分割消息頭和主體 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"... //消息體
Response包中的第一行叫做狀態行,由HTTP協議版本號, 狀態碼, 狀態消息 三部分組成。
狀態碼用來告訴HTTP客戶端,HTTP服務器是否產生了預期的Response。HTTP/1.1協議中定義了5類狀態碼, 狀態碼由三位數字組成,第一個數字定義了響應的類別
- 1XX 提示信息 - 表示請求已被成功接收,繼續處理
- 2XX 成功 - 表示請求已被成功接收,理解,接受
- 3XX 重定向 - 要完成請求必須進行更進一步的處理
- 4XX 客戶端錯誤 - 請求有語法錯誤或請求無法實現
- 5XX 服務器端錯誤 - 服務器未能實現合法的請求
go web by the one.一些常見知識記錄