狀態分爲五大類:1XX、2XX、3XX、4XX、5XX面試
1XX:信息類狀態碼 表示接受請求正在處理跨域
2XX:success 成功狀態碼 請求正常處理完畢瀏覽器
3XX:重定向 須要進行附加操做完成請求緩存
4XX:客戶端錯誤 服務器沒法處理請求安全
5XX:服務器錯誤 服務器處理請求出錯服務器
常見狀態碼:網絡
200 成功 從客戶端發出的請求在服務器端正常處理併發
204 服務器接收的請求已成功處理 但在返回的響應報文中不含實體的主體部分 (沒有內容)post
206 客戶端進行了範圍請求 服務端成功執行了部分請求加密
301 跳轉 永久性重定向 請求的資源已被分配了新的uri 之後請指向如今的uri
302 臨時性重定向 請求資源被分配了臨時uri 這次訪問請指向新的uri
303 因爲請求的資源存在另外一個uri 應使用get方法定向獲取資源
304 客戶端發送附帶條件的請求 服務器端容許請求訪問資源 但因發生請求未知足條件的狀況
307 臨時重定向 該狀態碼和302相同含義
400 請求報文中存在語法錯誤
401 發送的請求須要HTTP認證的認證信息
403 對資源的訪問別服務器拒絕
404 服務器沒法找到請求的資源
500 服務器錯誤沒法完成請求
503 服務器正處在超負載或者正在停機維護
物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層、應用層
第一層:物理層
創建、維護、斷開物理鏈接
第二層:數據鏈路層
創建邏輯鏈接、進行硬件地址尋址、差錯校驗等功能
第三層:網絡層
進行邏輯地址尋址,實現不一樣網絡之間的路徑選擇
第四層:傳輸層
定義傳輸數據的協議端口號,以及流控和差錯校驗
協議:TCP/UDP,數據包一旦離開網卡即進入網絡傳輸層
第五層:會話層
創建、管理、終止會話
第六層:表示層
數據的表示、安全、壓縮
第七層:應用層
網絡服務與最終用戶的一個接口。
協議:HTTP \ FTP \ TFTP \ SMTP \SNMP \ DNS \ TELNET \ HTTPS \ POP3 \ DHCP
工做特色:基於B/S模式,通訊開銷小、簡單快速、傳輸成本低,使用靈活、可以使用超文本傳輸協議,節省傳輸時間,無狀態。
工做原理:客戶端發送請求給服務器,建立一個TCP鏈接,指定端口號(默認80),鏈接到服務器,服務器監聽瀏覽器請求,一旦監聽到客戶端請求,分析請求類型,服務器會向客戶端返回狀態信息和數據內容。
Accept 告訴瀏覽器客戶端支持的數據類型
User-Agent 告訴客戶機的軟件環境
Cookie 能夠帶給服務器客戶端的數據
Date 請求時間
Referer 從哪一個資源訪問服務器 (經常使用於防盜鏈)
Origin 用來講明最初請求是從哪裏發起的 (百度瞭解referer和origin的區別)
Content-Type 告訴瀏覽器響應數據類型
Cache-Control 控制瀏覽器的緩存
X-Forwarded-For 一個 HTTP 擴展頭部
Access-Control-Allow-Origin 設置跨域頭 如 header("Access-Control-Allow-Origin:*"); 容許全部域名訪問
Last-Modified 最後請求資源的響應時間
GET POST HEAD OPTIONS PUT DELETE TRACE
面試中常問的一個爲題:get和post請求方法的區別?
post更安全(不會做爲url的一部分,不會被緩存、保存在服務器日誌、以及瀏覽器記錄中)
post發送的數據量更大(get有url長度限制)
post能發送更多的數據類型(get只能發送ASCII(gb2312)字符)
post比get慢
post是向服務器提交數據的一種請求,get是向服務器索取的一種請求
get會將數據緩存起來
POST請求過程:
一、瀏覽器請求TCP鏈接(第一次握手)
二、服務器答應進行TCP鏈接(第二次握手)
三、瀏覽器確認,併發送post請求頭(第三次握手,這個報文比較小,因此HTTP會在此時進行第一次數據發送)
四、服務器返回100 continue響應
五、瀏覽器開始發送數據
六、服務器返回200 🆗響應
GET請求過程:
一、瀏覽器請求TCP鏈接(第一次握手)
二、服務器答應進行TCP鏈接(第二次握手)
三、瀏覽器確認,併發送get請求頭和數據(第三次握手)
四、瀏覽器返回200 🆗響應
HTTPS是一種基於SSL/TLS的HTTP協議,全部的HTTP數據都是在SSL/TLS協議封裝之上傳輸的。
HTTPS協議在HTTP協議的基礎上,添加了SSL/TLS握手以及數據加密傳輸,也屬於應用層協議
FTP 文件傳輸協議 端口:21
Telnet 遠程登錄 端口:23
SMTP 簡單郵件傳輸協議 端口:25
POP3 接收郵件 端口:110
HTTP 超文本傳輸協議 端口:80
DNS 域名解析服務 端口:53