一窖贤、 了解網絡基礎
- web是使用一種名為HTTP(HyperText Transfer Protocol曹锨,超文本傳輸協(xié)議)的協(xié)議作為規(guī)范,Web是建立在HTTP協(xié)議上通訊的檩奠。
- 通常使用的網絡實在TCP/IP協(xié)議族的基礎上運作的翁锡。HTTP屬于它的一個子集蔓挖。
- TCP/IP協(xié)議族按層次劃分為:應用層、傳輸層馆衔、網絡層和數據鏈路層瘟判。
- TCP/IP協(xié)議族分層的好處:
- 每個層可以自由改動,甚至替換而不會影響到其他層角溃。
- 處于應用層上的應用可以只考慮分派給自己的任務拷获,而不需要弄清對方在哪里,怎么來减细,傳輸是否正確等問題匆瓜。
- TCP/IP協(xié)議族各層作用:
- 應用層:決定了向用戶提供應用服務時通訊的活動(HTTP、FTP、HTTP協(xié)議)
- 傳輸層:為上層應用層提供處于網絡連接中的兩臺計算機之間的數據傳輸(TCP:傳輸控制協(xié)議驮吱、UDP:用戶數據報協(xié)議)
- 網絡層:用來處理在網絡上流動的數據包茧妒。規(guī)定通過怎樣的路徑到達對方計算機,并把數據包傳送給對方糠馆。(選擇傳輸線路)
- 鏈路層:用來處理連接網絡的硬件部分嘶伟。(控制操作系統(tǒng)怎憋、硬件的設備驅動又碌,NIC:網卡、光纖等硬件范疇的)
- TCP/IP通信傳輸流:[客戶端]HTTP客戶端(應用層)<->TCP(傳輸層)<->IP(網絡層)<->網絡(鏈路層)<->IP(網絡層)<->TCP(傳輸層)<->HTTP服務器(應用層)[服務器]绊袋。
- 與HTTP關系密切的協(xié)議
- IP協(xié)議:負責傳輸毕匀,兩個重要條件-IP地址(指明節(jié)點被分配的地址)和MAC地址(網卡所屬的固定地址)
- TCP協(xié)議:確保數據能到達目標。三次握手策略
- DNS協(xié)議:負責域名解析癌别。位于應用層皂岔,提供域名到IP地址的解析服務。
- URI與URL
二展姐、 HTTP協(xié)議基礎
- HTTP是一種無狀態(tài)協(xié)議躁垛。HTTP協(xié)議自身不對請求和響應之間的通訊狀態(tài)進行保存。為了實現保存狀態(tài)功能引入了Cookie技術圾笨。
- HTTP請求方法
- GET:獲取資源
- POST:傳輸實體主題
- PUT:傳輸文件
- HEAD:獲得報文首部教馆,與GET方法一樣,只是不返回報文主體部分擂达。
- DELETE:刪除文件土铺,與PUT相反
- OPTIONS:詢問支持的方法,查詢針對請求URI指定的資源支持的方法
- TRACE:追蹤路徑板鬓,讓web服務器端將之前的請求通信環(huán)會給客戶端的方法
- CONNECT:要求在于代理服務器通信時建立隧道悲敷,實現用隧道協(xié)議進行TCP通信(SSL、TLS)
- 請求方法區(qū)分大小寫俭令,注意用大寫字母
- 持久連接
- HTTP協(xié)議初始版本每進行HTTP通信后德,就要斷開一次TCP連接。浪費
- 在HTTP/1.1版本中抄腔,所有的連接默認都為持久連接(管道化瓢湃、請求并行)
- 使用Cookie管理狀態(tài)
三、HTTP報文內的HTTP信息
- 請求報文與響應報文的結構
- 編碼提升傳輸速率(但是妓柜,編碼操作需要計算機來完成箱季,回消耗更多的CPU等資源)
- 報文主體與實體主體的差異
- 報文:
- 實體:
- 通常報文主體等于實體主體。只有當傳輸中進行編碼操作時棍掐,實體主體的內容發(fā)生變化藏雏,才導致他們產生差異。
- 壓縮傳輸的內容編碼
- gzip
- compress
- deflate
- identity
- 分塊傳輸編碼
- 多部分對象集合包含的對象:
- multipart/form-data
- multipart/byteranges
- 獲取部分內容的范圍請求:具體應用,斷點下載
- 內容協(xié)商返回最適合的內容
四掘殴、HTTP狀態(tài)碼
- 2xx 成功
200 OK
204 No Content 代表請求處理成功赚瘦,但返回的響應報文中不含實體的主體部分。
206 Partial Content 表示客戶端進行了范圍請求奏寨,服務器處理該部分GET請求成功起意。
- 3xx 重定向
301 Moved Permanently 表示請求的資源已被分配了新的URI,以后應使用資源現在所指的URI病瞳。
302 Found 臨時重定向揽咕,表示請求的資源已被分配了新的URI,希望用戶本次能使用新的URI訪問套菜。
303 See Other 與302有著相同的功能亲善,但303狀態(tài)嗎明確表示客戶端應當采用GET方法獲取資源。
304 Not Modified 服務器端資源為改變逗柴,可直接食用客戶端為過期的緩存蛹头。
307 Temporary Redirect 臨時重定向,與302有著相同的含義戏溺。
- 4xx 客戶端錯誤
400 Bad Request 表示請求報文中存在語法錯誤渣蜗。
401 Unauthorized 表示發(fā)送的請求需要有通過HTTP認證(BASIC認證、DIGEST認證)的認證信息旷祸。
403 Forbidden 表示請求資源被服務器拒絕訪問耕拷。
404 Not Found 找不到資源。
- 5xx服務器錯誤
500 Internal Server Error 表明服務器端在執(zhí)行請求時發(fā)生了錯誤肋僧。
503 Service Unavailable 表明服務器暫時處于超負荷或正在進行停機維護斑胜,無法處理請求。