iOS 《圖解HTTP》+《TCP IP 協議》筆記

讀書寫筆記。列舉在學習過程當中記錄的一些內容 1.TCP/IP協議族按層次分紅四層:應用層、傳輸層、網絡層和數據鏈路層。分層的好處就是改變設計時不須要總體改動,能夠針對分層自由改動。瀏覽器

應用層:應用層決定了向用戶提供應用服務時通訊的活動。TCP/IP協議族內預存了各種通用的應用服務。好比,FTP(File Transfer Protocol 文件傳輸協議)和DNS(Domain Name System 域名系統)服務就是其中的兩類。HTTP協議也處於該層。 傳輸層:傳輸層對應上層應用層,提供處於網路鏈接中的兩臺計算機之間的數據傳輸。在傳輸層有兩個性質不一樣的協議:TCP(Transmission Control Protocol 傳輸控制協議)和UDP(User Data Protocol, 用戶數據協議)。 網絡層(網絡互連層):網絡層用來處理網絡上流動的數據包。數據包是網絡傳輸的最小數據單位。該層規定了經過怎樣的路徑(傳輸線路)到達對方計算機,並把數據包傳送給對方。與對方計算機之間經過多臺計算機或網絡設備進行傳輸時,網絡層因此得做用就是在衆多的選項內選擇一條傳輸路線。 鏈路層(數據鏈路層,網絡接口層):用來處理鏈接網絡的硬件部分。硬件上的範疇均在鏈路層的做用範圍以內。 發送端在層與層之間傳輸數據時,每通過一層一定會被打傷一個該層所屬的手背信息。反之,接收端在層與層傳輸數據傻逼,每通過一層時會把對應的首部消去。這種把數據信息包裝起來的作法稱之爲封裝。緩存

2.IP協議(網際協議)。IP協議的做用是把各類數據包傳送給對方。而要確保確實確實傳送到對方那裏,則須要知足各種條件。其中兩個重要的條件就是IP地址和MAC(Media Access Control Address)地址。IP地址指明瞭節點被分配到的地址。MAC地址是指網卡所屬的固定地址。IP地址可變換,但MAC地址基本不會更改。IP間的通訊依賴MAC地址。採用ARP(Address Resolution Protocol)協議能夠根據通訊方的IP地址就能夠反查對應的MAC地址。 在到達通訊目標前的中轉過程當中,那些計算機和路由器都只能獲悉很粗略的傳輸路線。這種機制成爲路由選擇(routing)。安全

3.TCP協議爲了更容易傳送大數據才把數據分割,並且TCP協議可以確認數據是否送達到對方。服務器

三次握手策略(three-way handshaking)握手過程當中使用TCP的標誌-SYN(synchronize)和ACK(acknowledge event)。網絡

4.URI(統一資源標識符 Uniform Resource Identifier) 某個協議方案表示的資源的定位標識符。協議方案是指訪問資源所使用的協議類型名稱。而URL表示資源的地點。 絕對URI格式:協議方案名+登陸信息(認證)+服務器地址+服務器端口號+帶層次的文件路徑+查詢字符串+片斷標識符less

5.HTT是一種不保存狀態,即無狀態(stateless)協議。HTTP協議自身不對請求和響應之間的通訊狀態進行保存。在HTTP這個級別,協議對於發送過得請求和響應都不作持久化處理。 ##6.經常使用的HTTP方法: GET(GET方法用來請求訪問已被URI識別的資源); POST(用來傳輸實體的主題,主要目的並非獲取相應的主體內容); PUT(用來傳輸文件,由於HTTP/1.1的PUT方法不帶驗證機制,任何人均可以上傳文件,存在安全性問題); HEAD(HEAD方法和GET方法同樣,只是不反悔報文的主體部分。用於確認URI的有效性及資源更新的日期時間等); DELETE(用來刪除文件); OPTIONS(用來查詢針對請求URI指定的資源支持的方法) TRACE(讓Web服務器端講以前的請求通訊環給客戶端的方法); CONNECT(要求在與代理服務器通訊時創建隧道,實現用隧道協議進行TCP通訊。主要使用SSL(Secure Sockets Layer 安全套接層)和TLS(Transport Layer Security,傳輸層安全)協議把通訊內容加密後經網絡隧道傳輸) ##7.常見的響應結果:學習

  • 2XX成功:代表請求被正常處理了。
  1. 200 OK:在響應報文內,隨狀態碼一塊兒返回的信息會由於方法的不一樣而發生改變。
  2. 204 No Content:該狀態碼錶明服務器接收的請求已成功處理,但在返回的響應報文中不含實體的主體部分。
  3. 206 Partial Content:該狀態碼錶示客戶端進行了範圍請求,而服務器成功執行了這部分的GET請求。
  • 3XX 重定向
  1. 301 Moved Permanently 永久性重定向。該狀態碼錶示請求的資源已被分配了新的URI,之後應使用資源如今所指的URI。
  2. 302 Found 臨時性重定向。該狀態碼錶示請求的資源已被分配了新的URI,但願用戶(本次)能使用新的URI訪問
  3. 303 See Other 該狀態碼錶示因爲請求對應的資源存在另外一個URI,應使用GET方法定向獲取請求的資源。
  4. 304 Not Modified 該狀態碼錶示客戶端發送附帶條件請求時,服務器容許請求訪問資源,但未知足條件的狀況。
  5. 307 Temporary Redirect 臨時重定向。該狀態碼與302有着相同的含義,307會遵守瀏覽器標準,不會從POST變成GET。
  • 4XX客戶端錯誤,代表客戶端是發生錯誤的緣由所在。
  1. 400 Bad Request 該狀態碼代表請求報文中存在語法錯誤。當錯誤發生時,需修改請求的內容後再次發送請求。
  2. 401 Unauthorized 該狀態碼錶示發送的請求須要有經過HTTP認證的認證信息。另外若以前已進行過一次請求,則表示用戶認證失敗。
  3. 403 Forbidden 該狀態碼錶示對請求資源的訪問被服務器拒絕了。未獲取文件系統的訪問權限,訪問權限出現某些問題等列舉的狀況均可能發生403的緣由。
  4. 404 Not Found 該狀態碼錶示服務器上沒法找到請求的資源。
  • 5XX服務器錯誤,代表服務器自己發生錯誤
  1. 500 Internal Server Error 該狀態碼代表服務器在執行請求時發生了錯誤。也多是微博應用存在的bug或臨時故障。
  2. 503 Service Unavailable 該狀態碼代表服務器暫時處理超負載或正在進行停機維護,如今沒法處理請求。

##8.通訊數據轉發程序:代理、網關、隧道。 代理:代理服務器的基本行爲就是接受可會斷髮送的請求後轉發給其餘服務器。持有資源實體的服務器被稱爲緣服務器。每次經過代理服務器轉發請求或響應時,會追加寫入Via首部信息。緩存代理(Caching Proxy)和透明代理(Transparent Proxy) 。 網關:網關的工做機制和代理十分類似。而網關能使通訊線路上的服務器提供非HTTP協議服務。利用網關能提升通訊的安全性,由於能夠再客戶端與網關之間的通訊線路上加密以確保鏈接的安全。 隧道:隧道本身不會去解析HTTP請求。隧道能夠按照要求創建一條與其餘服務器的通訊線路,可使用SSL等加密手段進行通訊。隧道的目的是確保客戶端能與服務器進行安全的通訊。 9.HTTP首部字段室友首部字段名和字段值構成的,中間用冒號」:」分割。「首部字段名:字段值」 ##10.HTTP/1.1 通用首部字段,列舉一些經常使用的。 1.Cache-Control 經過指定首部字段Cache-Control的制定,就能操做緩存的工做機制。no-cache表明不緩存過時的資源,緩存回想源服務器進行有效期確認後處理資源,no-store纔是真正的不緩存。s-maxage指令功能和max-age指令相同,他們的不一樣點是s-maxage適用於供多位用戶使用的公共服務器,對向同一用戶重複返回響應的服務器來講無效。當使用s-maxage指令後,則直接湖綠對Expires(實體主體過時的日期時間)首部字段及max-age指令的處理。min-fresh指令要求緩存服務器返回至少還未過制定時間的緩存資源。 2.Connection 具備控制再也不轉發給代理的首部字段/管理持久鏈接(Connection:close 即所謂斷開持久鏈接,Connection:Keep-Alive 建立持久鏈接)的做用 3.Upgrade 用於檢測HTTP協議及其餘協議是否可以使用更高的版本進行通訊,其參數值能夠用來制定一個徹底不一樣的通訊協議。 3.Via 追蹤客戶端和服務器之間的請求和響應報文的傳輸路徑。 11.TCP傳遞給IP的信息單元爲TCP報文段或簡稱爲TCP段,大小爲20個字節。UDP傳給IO的信息單元成爲UDP數據報,並且UDP首部長爲8字節。以太網數據幀的物理特性是其長度必須在46~1500字節之間。TCP和UDP都用一個16bit的端口號來表示不一樣的應用程序。TCP和UDP把源端口號和目的端口號分別存入報文首部中。IP在首部存入一個長度爲8bit的數值,稱做協議域。 12.ARP:地址解析協議,RARP:逆地址解析協議大數據

相關文章
相關標籤/搜索