前言
Http(s)是前后端交互的主要方式之一,交互技術主要有:Ajax(XMLHttpRequest)、Fetch、地址跳轉(window.open、location.href)。Http(s)與后台交互傳遞數據的部分有:請求網址、請求頭、請求主體、響應頭、響應主體
請求網址
請求網址是通過pathname或search進行傳遞數據給后端,缺點就是:1.暴露數據信息 ,2.交互數據有長度限制,但也常用於解決地址跳轉、授權回調、文件授權下載等
請求頭
請求頭部分傳遞給后端主要是一些輔助數據或固定數據,例如userAgent、cookies、token等,如每次交互都需要帶上的數據(sessionId等)會放在Cookie請求頭上,瀏覽器會在請求上自動帶上這些數據
請求主體
在使用POST、PUT方法時,會有請求主體,請求主體適用於傳遞大量數據和自定義數據,大部分情況下業務數據都是通過這種方式傳遞給后台
響應頭
響應頭主要是后台返回給前端的一些輔助數據,例如set-cookie、server、version等
響應主體
響應主體是前端主要解析的數據,返回主要的業務數據,內容格式有:網頁內容、JavaScript腳本、Css樣式、文件二進制等
結論
本質上請求數據無論是放在請求網址、請求頭還是請求主體,其實都是無差別的,而放在不同請求位置上是因為這些位置有不同的特點(如cookie會每次請求都自動帶上、請求網址有長度限制),同樣響應數據也是如此。