1. 程式人生 > >HTTP請求流程

HTTP請求流程

指定 限制 選擇性 基於 存儲 gen class 狀態碼 gin

wen2.0時代到來,互聯網從C/S架構轉變為B/S架構
B/S即瀏覽器/服務器結構
web請求,基於統一的應用層協議(HTTP協議)交互數據
HTTP,即超文本傳輸協議,是一種詳細規定了瀏覽器和萬維網服務器之間互相通信的規則,是萬維網基礎,它允許將HTML(超文本標記語言)文檔從web服務器傳送到web瀏覽器
發起HTTP請求:在瀏覽器地址欄中輸入一個URL,並回車
借助工具發起HTTP請求:Linux系統的curl命令,windows系統的curl.exe 通過curl+URL,可以查看訪問URL後服務器返回的HTTP響應頭
瀏覽器在HTTP協議方面只不過多了HTML渲染的功能
URL:統一資源定位符,也稱網頁地址,是互聯網標準的地址
URL標準格式:協議://www.xxser.com/post/httpxieyi.html
HTTP協議詳解:
HTTP協議目前版本1.1
HTTP是一種無狀態的協議,無狀態是指web服務器與web瀏覽器之間不需要建立持久的連接,在服務器端不保留連接的有關信息,HTTP請求只能由客戶端發起而服務器不能主動向客戶端發送數據
HTTP遵循請求/應答模型
HTTP請求:包括三部分:請求行(請求方法)、請求頭(消息報頭)、請求正文
一個例子:
POST /login.php HTTP/1.1//請求行
HOST: www.xxser.com//請求頭
User-Agent: Mozilla/5.0(Windows NT 6.1 ;rv:15.0) Gecko/20100101 Firefox/15.0
//空白行,代表請求頭結束
username=admin&password=admin//請求正文
請求行有三部分:POST請求,斜杠用來說明請求的是該域名根目錄下的login.php,最後說明HTTP是1.1版本
第二行到空白行是請求頭也稱消息頭,HOST代表請求的主機地址,User-Agent代表瀏覽器標識,請求頭由客戶端自行設定
最後一行為請求正文,請求正文可選
HTTP響應
三部分:響應行、響應頭、響應正文
第一行響應行:有HTTP版本,狀態碼,消息
第二行到末尾空白行為響應頭:服務器向客戶端發送
最後是響應正文:服務器向客戶端發送的HTML數據
HTTP請求方法:
(1)GET:用於獲取請求頁面的指定信息,以實體的格式,發送數據有大小長度的限制,並且會將發送的數據顯示在瀏覽器端
如果請求資源為動態腳本(非HTML),那麽返回文本是web容器解析後的HTML源代碼,而不是源文件
請求參數:id 選擇性接受參數,一般由開發者內定好的參數項目才會接收
(2)HEAD:除了服務器不能在響應裏返回消息主體外,其他同GET
常用來測試超文本鏈接的有效性、可訪問性和最近的改變,測試資源是否存在
(3)POST:與GET相似,但GET方法沒有請求內容,而POAT是有請求內容的
最多用於向服務器發送大量數據,數據不顯示在瀏覽器端,安全性相對高一些
例如:上傳文件,提交留言
(4)PUT:用於請求服務器把請求中的實體存儲在請求資源下,如果請求資源已經在服務器中存在,那就會替換原先的數據,作為指定資源的最新修改版,如果請求的指定資源不存在,將會創建這個資源,且數據位請求正文
通常情況下,服務器會關閉PUT方法,因為它會為服務器建立文件,屬於危險的方法之一
(5)DELETE:用於請求服務器刪除請求的指定的資源,通常服務器會關閉這種方法,因為客戶端可以進行刪除文件操作,屬於危險方法之一
(6)TRACE:用於激發一個遠程的應用層的請求消息回路,回顯服務器收到的請求,此方法允許客戶端去了解數據被請求鏈的另一端接受的情況,並且利用那些數據進行測試或診斷
(7)CONNECT:用於動態切換到隧道的代理 (8)OPTIONS:用於請求獲得由URL標識的資源在請求響應的通信過程中可以使用的功能選項 .客戶端可以在采取具體資源請求之前,決定對該資源采取何種必要措施,或者了解服務器的性能

HTTP請求流程