原创 Http權威指南筆記(七)——緩存

緩存是HTTP通信過程中非常重要的一個環節,現在應該很少能找到不支持緩存的客戶端和代理了。所以學習緩存對我們理解客戶端和代理有非常大的幫助。 1 緩存的優點(解決的問題) 爲什麼要使用緩存呢,因爲使用緩存具有如下幾個優點: 可以

原创 Http權威指南筆記(十四)-內容協商與轉碼

現在很多國際化的一些Web服務都會根據不同地區使用的語言不同,返回不同語言的頁面內容展示給用戶。而這裏面就涉及到本篇介紹的內容——內容協商與轉碼。 1 內容協商的技術 目前的內容協商技術主要有3種——客戶端驅動協商、服務器驅動協商

原创 Http權威指南筆記(十二)——實體與編碼

本章會對HTTP實體和編碼進行學習。這裏的實體是指HTTP中真正需要傳輸的實體內容(比如一張圖片,一份文檔)。這裏的編碼主要是指內容編碼和傳輸編碼。 1 報文與實體 如果將HTTP對內容的傳輸比喻成實際生活中一些貨物的運輸的化。那

原创 Http權威指南筆記(十三)-國際化

HTTP報文可以承載任何語言表示的內容的。因爲對HTTP來說,實體主體真實二進制信息的容器而已。 在HTTP中爲了支持國際性,服務器返回內容的同時需要告知客戶端文檔是用的什麼字母表和語言等信息,這樣客戶端才能正確的解析出信息並顯示

原创 Http權威指南筆記(十一)——安全HTTP(HTTPS)

上一篇中我們介紹了一些HTTP的認證機制,但是其安全性相對都不甚理想。本篇文章會介紹一種更爲複雜和安全的技術。其具備以下一些特性:服務器認證,客戶端認證,完整性,加密,效率,普適性,管理的可擴展性,適應性,可行性。HTTPS就是目

原创 Http權威指南筆記(十)——認證

現在大多數網站都會在cookie等客戶端識別機制的基礎上建立自己的認證機制。但是HTTP規範中提供的原生認證機制還是有必要了解下,瞭解這些後才能更好理解那些自己建立的認證機制。 HTTP原生認證功能一般分爲基本認證和摘要認證。基本認證

原创 Http權威指南筆記(九)——客戶端識別和cookie機制

按照《HTTP權威指南》的章節,在這之前應該還有“Web機器人”和“HTTP-NG”兩個章節,但是這兩個章節實際使用當中比較少,這裏就沒有做介紹,感興趣的朋友可以自己去看看。本節我們開始介紹HTTP識別、認證和安全部分的客戶端識別和c

原创 Http權威指南筆記(八)——網關、隧道、中繼

本章主要介紹網關、隧道、中繼。都是屬於通過HTTP訪問不同資源的實現方法。 1 網關 網關可以作爲某種翻譯器使用,它抽象出了一種能夠到達資源的方法。網關是資源和應用程序之間的粘合劑。 有些網關會自動將 HTTP 流量轉換爲其他協議,這

原创 Http權威指南筆記(六)——代理

上一篇學習了Web服務器,這一篇我來學習一下代理的知識。現在的網絡中存在着各種各樣的代理。學習Web代理服務器,更有利於我們隊網絡請求過程的理解。 簡介 代理服務器是網絡的中間實體,其既是Web服務器,也是Web客戶端。所以其必須要能

原创 Http權威指南筆記(五)——Web服務器

前面四篇屬於《HTTP權威指南》第一部分內容。接下來幾篇進入第二部分內容的學習,首先介紹Web服務器。 Web服務器就是整個萬維網的骨幹,廣義上來說Web服務器既可以用來表示Web服務器的軟件,也可以用來表示提供Web頁面的特定設備和

原创 Http權威指南筆記(四)——連接管理

本篇主要包括如下幾個方面的內容: HTTP 是如何使用 TCP 連接的; TCP 連接的時延、瓶頸以及存在的障礙; HTTP 的優化,包括並行連接、keep-alive(持久連接)和管道化連接; 管理連接時應該以及不應該做的事情。

原创 Http權威指南筆記(三)——HTTP報文

前面介紹了URL是用於定位服務器上的資源。但是定位到資源後,通過什麼樣的方式、規定來讓客戶端和服務端進行交流呢?這就是本篇要介紹的HTTP報文。 1 報文流 HTTP 報文是在 HTTP 應用程序之間發送的數據塊。這些數據塊以一些文本

原创 Http權威指南筆記(二)——URL與資源

其實在我們生活中,有很多標準化命名規範,如:街道地址,書籍的ISBN號等。所謂的標準化命名規範,就是按照一定的規則對資源進行命名,以便通過名稱就能定位資源的一種規範。我們接下來學習的URL也是一種標準化命名規範。 1 URL簡介 UR

原创 Http權威指南筆記(一)——概述

Web瀏覽器、服務器和應用程序之間的通信都可以聽過Http協議實現,本篇先對Http協議中的幾個概念做一個總體的介紹。 1 Web服務端和客戶端 一般Web服務器是用於存儲Web內容的,負責向客戶端提供數據。其中的內容可以被Web客戶

原创 OkHttp3源碼分析(二)-Dispatcher和Interceptor

對OkHttp介紹,我們分爲使用篇和源碼分析篇兩個系列進行介紹。 在上一篇文章中,我們大致梳理了一下OkHttp的請求過程。但是中間涉及到的client.dispatcher().executed(this);、client.disp