2015-08-08 169 views
0

我一直在嘗試徹底理解HTTP POST請求/響應過程,儘管在google上有很多資源,但沒有一個明確地給我答案。瞭解HTTP POST請求/響應過程

示例方案:

我有一個搜索表單,我輸入一些查詢和發出請求。然後我重定向到搜索結果頁面。

有人可以解釋這個過程;特別是,我對重定向最感興趣。

這是我認爲正在發生的事情:

POST request containing query 
     | 
     v 
Server receives request. 
     | 
     V 
Server sends back response containing the page that the client should subsequently request. 
     | 
     V 
Client receives response and requests page indicated in the response. 
     | 
     V 
Server receives request and sends back requested page. 
     | 
     V 
Client renders page. 

回答

1

這正是發生了什麼。有關此模式的說明,請參見Post/Redirect/Get on Wikipedia

客戶端執行的POST請求:

Client -> Server: POST/HTTP/1.1 (+payload) 
Server -> Client: HTTP/1.1 302 See other (+location header +payload) 

現在客戶機看到302,並執行要由location頭標識的資源的附加請求:

Client -> Server: GET $location HTTP/1.1 
Server -> Client: HTTP/1.1 200 OK (+payload) 

可以使用Fiddler或用於檢查HTTP流量的Charles

+0

真棒,感謝您的確認 – Robbo