我曾多次閱讀http協議,但是理解依然不深,在此,再次閱讀,再次理解。加深兩點:解析頭部資訊\r\n,分解頭部和主體用\r\n\r\n。之所以一次請求會看到網路裡有很多請求,是因為瀏覽器代替訪問了多次!程式只管處理一次即可!
步驟1:瀏覽器首先向伺服器傳送http請求,請求包括:
方法:get還是post,get僅請求資源,post會附帶使用者資料;
路徑:/html/path;
網域名稱:由host頭指定:host: www.sina.com.cn
以及其他相關的header;
如果是post,那麼請求還包括乙個body,包含使用者資料。
步驟2:伺服器向瀏覽器返回http響應,響應包括:
響應**:200表示成功,3xx表示重定向,4xx表示客戶端傳送的請求有錯誤,5xx表示伺服器端處理時發生了錯誤;
(響應**詳細說明:請求響應的狀態碼
1xx:資訊類,表示收到web瀏覽器請求,正在進一步的處理中
2xx:成功,表示使用者請求被正確接收,理解和處理。如200 ok
3xx:重定向,表示請求沒有成功,客戶必須採取進一步的操作
4xx:客戶端錯誤,表示客戶端提交的請求有錯誤,例如,404 not found,意味著請求中所引用的文件不存在
5xx:伺服器錯誤,表示伺服器不能完成對請求的處理,如500
下表顯示每個響應碼及其含義:
100 繼續101 分組交換協
200 ok 201 被建立 202 被採納 203 非授權資訊 204 無內容 205 重置內容 206 部分內容
300 多選項 301 永久地傳送 302 找到3 03 參見其他 304 未改動 305 使用** 307 暫時重定向
400 錯誤請求 401 未授權 402 要求付費 403 禁止 404 未找到 405 不允許的方法 406 不被採納 407 要求**授權 408 請求超時 409 衝突 410 過期的 411 要求的長度 412 前提不成立 413 請求例項太大 414 請求uri太大 415 不支援的**型別416 無法滿足的請求範圍 417 失敗的預期
500 內部伺服器錯誤501 未被使用502 閘道器錯誤503 不可用的服務504 閘道器超時505 http版本未被支援
響應型別:由content-type指定;
以及其他相關的header;
通常伺服器的http響應會攜帶內容,也就是有乙個body,包含響應的內容,網頁的html原始碼就在body中。
每個http請求和響應都遵循相同的格式,乙個http包含header和body兩部分,其中body是可選的。
http協議是一種文字協議,所以,它的格式也非常簡單。http get請求的格式:
header2: value2每個header一行乙個,換行符是\r\n
。
http post請求的格式:
body data goes here...當遇到連續兩個\r\n
時,header部分結束,後面的資料全部是body。
http響應的格式:
200 ok
header1: value1
header2: value2
body data goes here...
http響應如果包含body,也是通過\r\n\r\n
來分隔的。請再次注意,body的資料型別由content-type
頭來確定,如果是網頁,body就是文字,如果是,body就是的二進位制資料。
當存在content-encoding
時,body資料是被壓縮的,最常見的壓縮方式是gzip,所以,看到content-encoding: gzip
時,需要將body資料先解壓縮,才能得到真正的資料。壓縮的目的在於減少body的大小,加快網路傳輸。
get 請求與post請求的區別
1.get
一般用於資訊獲取;使用url傳遞引數;對所傳送的資訊的數量也有限制,一般在2000個字元
2.post
一般用於修改伺服器上的資源;對所傳送的資訊的數量沒有限制
ajax--http知識點鏈結
HTTP請求 冪等 安全概念
一 安全 最近學習到網路的時候,對於http請求也有進一步的提公升。此處先用一張圖來解釋下。這裡的安全,我們可以看到get請求是安全的,而post請求是不安全的,這裡可能會有人問了?為什麼?因為這裡的安全其實是分概念來講的,就好比我get請求如果去做登入操作是直接拼接引數到url中的,這當然就是不安...
HTTP請求 HTTP方法
http 1.1中可使用的方法 get 獲取資源 獲取伺服器的某個資源 get方法用來請求訪問已經被uri識別的資源。制定的資源經伺服器端解析後返回響應內容。也就是說,如果請求的資源是文字,那就保持原樣返回 如果是像cgi common gateway inte ce,通用閘道器介面 那樣的程式,就...
http 請求 聊聊HTTP請求及響應
http是超文字傳輸協議 英文 hypertexttransferprotocol,縮寫 http 是一種用於分布式 協作式和超 資訊系統的應用層協議。http是全球資訊網的資料通訊的基礎 包含三大部分 1.1請求行 位於請求訊息的第一行 格式 請求方式 資源路徑 http版本號 常用請求方式 ge...