http協議概述http報文格式請求方法與響應碼瀏覽器搜尋到頁面顯示的過程,http與tcpsession與cookieshttp1.0,1.1,2.0restful 程式設計風格https
http是指超文字傳輸協議,顧名思義就是通過網路在主機之間傳遞超文字的一種協議,廣泛用於bs(瀏覽器和web伺服器)架構下
http的工作模式是客戶端瀏覽器向伺服器請求資源,伺服器響應發回資源,所以http報文分為請求報文和響應報文請求方法格式:起始行 + 頭 + 資料體
請求報文響應報文
起始行方法型別、資源url、版本號
版本號、響應碼、狀態碼描述
頭
content-length:傳送資料的長度
content-encoding:資料壓縮格式(zip)
server:伺服器應用軟體名稱、版本
date
體資料
資源
請求定義了對資源的操作型別,get,post,put,delete就像資料庫select,insert,update,deleteget和post請求方法的區別
getpost
語義get表示從伺服器取,應該只是檢索資料
post表示上傳實體到伺服器,通常會對伺服器產生影響
傳送資料的方式
放到url裡
放到請求體裡,相較而言更安全,但是也是明文傳輸
傳送資料長度限制
受限於url長度
沒有限制
tcp資料報數
產生乙個包,傳送請求頭和資料
產生兩個包,
先傳送頭,伺服器響應100(continue);
再傳送資料
get快取機制目的:響應碼做法:瀏覽器會把資源以及狀態資訊快取下來
使用者再次請求該資源時,瀏覽器檢查過期時間是否到,
詢問伺服器資源這段時間是否被更新
學習自部落格 http請求中的快取機制
20x30x40x50x
通俗請求成功
請求重定向
客戶端的請求有問題
伺服器的處理有問題
舉例200:請求成功
201:建立成功,請求資源被成功建立
301;請求資源永久轉移了
302:請求資源暫時被轉移
304:請求資源未被修改
400:請求格式有誤
403:拒絕執行請求
404:請求資源不存在
500:伺服器內部錯誤
301和302的區別瀏覽器搜尋到頁面顯示的過程
dns的解析http與tcp建立tcp連線
傳送http請求報文
伺服器處理請求
伺服器發回http響應報文
瀏覽器請求靜態資源(css,img,js等),渲染html
一次http請求建立乙個tcp連線?處理完畢連線斷開?session與cookies
cookies:cookie集合,乙個cookie包含鍵值對、過期時間、網域名稱、路徑、secure(ssh安全連線時回傳)、描述資訊,使用者訪問伺服器時,伺服器會給客戶端瀏覽器返回一些鍵值對用來區分使用者客戶端再次訪問伺服器時,滿足條件就會在請求頭里帶上這些cookie(有數量、大小限制,取決於瀏覽器,使用者可自行刪除),包含sessionid,用來確定客戶身份
session:是乙個concurrenthashmap,是伺服器用來儲存使用者資訊的;伺服器用的concurrenthashmap根據sessionid查詢使用者session
作用:都是用來儲存http請求間的狀態資訊,保持訪問使用者與後端伺服器的互動狀態
區別:儲存位置不同,session更安全儲存在伺服器,cookie儲存在客戶端瀏覽器,傳輸過程容易被人窺探,所以敏感資訊應該加密 或 不通過cookie傳輸http1.0,1.1與2.0
連線預設短連線(1次請求建立1個tcp連線)
可以通過設定connection:keep-alive使用長連線
缺省長連線
多路復用(乙個連線併發多個請求),基於二進位制幀(保證請求不亂序)
快取cache-control:
快取響應指令:
支援虛擬主機,增加host欄位以區分同乙個ip下的多個虛擬主機
引入options方法
服務端主動推送,比如推送css檔案,js檔案,靜態資料
允許客服端不等請求返回就發下乙個請求,
伺服器必須按請求順序返回響應
首部壓縮
restful 程式設計風格
概述:對資源的url訪問路徑進行命名的風格特點: 舉例:
好處:對所有資源的訪問更加統一,容易舉一反三,便於訪問、記憶
uri:統一資源識別符號,url:統一資源定位符
uri包括了url,url是以路徑作為標識
設計模式 校招知識點總結
目錄 6大原則 分類 模式 jdk中的設計模式 單一職責 乙個類只需要做好一件事,複雜事通過多個類的合作完成 開閉原則 對擴充套件開放,對修改關閉 黎克特制替換原則 父物件能做的事,子物件也能做 依賴倒置 上層模組不應該依賴下層模組,應該都依賴於抽象 解耦,兩邊約定好介面,各幹各的 抽象更穩定 介面...
MySQL事務實現 校招知識點總結
本章內容 事務特性 redo log如何實現永續性 undo log如何實現原子性 鎖 mvcc 實現隔離性 事務特性 redo log如何實現永續性 實現 innodb通過force log at commit機制實現永續性 效能影響 redo log包括兩部分 記憶體中的重做日誌緩衝區 磁碟中的...
HTTP知識點總結
唉扯遠了,說點實在的吧。web相關的開發人員應該都知道http協議的重要性,無論是做後端還是前端,安卓還是ios,都要跟http打交道。想必用fiddler除錯web api的時候,對返回的各種4xx 5xx狀態碼感到一頭霧水絕不是什麼愉快的體驗。最近也是複習了一些相關的知識,今天就總結一下。通常所...