HTTP基本介紹

陳品宏
7 min readOct 1, 2017

--

WWW

WWW(World Wide Web)

HyperText(超文件):互相連接的文字,點選字後,便會從字連結到相關的文章,即為WWW的前身。

WWW(World Wide Web,又稱全球資訊網)是歐洲的CERN所研發,是一種全新的Internet服務,可在網路上傳送圖片、文字、影像、聲音等多媒體資料,WWW所強調的是“網”的概念,就是文字、圖片都可以用連結(link)的方式查詢別的伺服器的資料,彼此交互連結,形成“網”。

WWW是屬於一種主從式(Client-Server)的架構,雙方在網路上透過HTTP通訊協定來取得、傳輸網頁。
伺服端(Server):指的Web伺服器或網站,裡面儲存Html文件、文件等多媒體資料
客戶端(Client):使用者執行瀏覽器(Browser),負責和伺服器溝通

HTTP

HyperText Transfer Protocol(HTTP)是一種用戶端瀏覽器和伺服端伺服器之間溝通的標準協定,他是屬於OSI七層模型中的應用層。

在HTTP協定中,每個物件從伺服器中獲取都需建立一個TCP連接,通訊埠號(port)80來傳輸網頁的HTTP服務。

基本上,HTTP是一種Client/Server的應用,Client端透過網址、超連結向Server下達HTTP請求(Request),請求Web serverk的虛擬目錄(virtual directory)的資源(html、image or backend的執行結果),處理完畢後,使用MIME格式回應(respond)回Client端。

目前主要版本有HTTP/1.0、HTTP/1.1、HTTP/2.0

HyperText Transfer Protocol Security(HTTPS),HTTP中間插入SSL(Secure Sockets Layer)層,利用密碼對雙方的連線加密,使第三方無法解讀其之間傳送的封包

URL

Uniform Resource Locator(URL)代表了兩種含義
1. 資源位址(Location),
ex. http://127.0.0.1/index.html,127.0.0.1為主機位址,index.html為欲瀏覽的資源
2. 資源的存取方式(是http,https or mail…)
*http://127.0.0.1:80/為HTTP協定,80為預設值所以省略(通訊埠是冒號後的數字來定義)

URL格式

用來建立連結
<通訊協定>://<主機位址>/虛擬目錄/<資源>?<參數>
通訊協定:例如http,https,ftp,mail…
主機位址:Web server的IP address或DNS名稱
虛擬目錄:代表Web Server相對應的實體目錄
資源:虛擬目錄下的檔案,若為HTTP協定,可為html, js, css…
參數:就是參數…

URL又分為absolute/relate URL
absolute URL:<通訊協定>://<主機位址>/虛擬目錄/<資源>?<參數>
relate URL:<虛擬目錄>/<資源>?<參數>

URL的正規化

URL字串是由ANSI字元組成,傳送空白、&、^等字元時,轉換成Escape字符,例如一個空白字元(ASCII32)會被轉換成%20(16進位制)

HTTP標題

待處理
網路應用與管理-HTTP通訊協定 (2)
4:28

HTTP方法

HTTP的方法因版本而異,下面列出:

  • HTTP/1.0 GET、HEAD、POST
  • HTTP/1.1 GET、HEAD、POST、CONNECT、DELETE、OPTIONS、PUT、TRACE
  • HTTP/2.0 不知道~~~

而HTTP方法的語法如下:
<http method> <URI> HTTP/<HTTP version><CRLF>
ex. GET /index.html HTTP/1.1

GET
HTTP通訊協定的基本方法,用以取得URI所指定的資源,回傳的內容分為標題(Header)與內容(Entity Body),內容是client端所呈現的結果(若只想要標題,可使用HEAD方法)
POST
不同在於不會將所需參數附加於URL之後,會將HTTP參數放在標題(Header)中,並以Content-Length定義長度
DELETE
刪除指定URL的資源
*必須開放目錄寫入的權限以允許修改目錄下的檔案,否則會執行失敗
執行成功會回傳如下訊息
/index.html was deleted successfully
PUT
與DELETE相反,可利用PUT建立指定的資源(ex.檔案),若資源存在將會覆寫(此方法常用於client端透過網頁upload檔案至Server端),與DELETE一樣,需要開放目錄寫入的權限

HTTP回應訊息

用來表示用戶端請求(request)的執行狀況,第一碼數字分別有以下意義:

  • 1 informational:HTTP 1.0 1.1尚未支援,預留之後使用
  • 2 successful:HTTP Request處理成功
  • 3 Redirection:Client or Server端需進一步導向(redirect)以處理Client端HTTP請求
  • 4 Client Error:Client端錯誤的HTTP請求
  • 5 Server:Server端錯誤的HTTP請求

HTTP通訊連結

HTTP通訊連結client、server端建立方法:Client端通常使用瀏覽器在網址列以URL形式輸入
<通訊協定>://<主機位址>/虛擬目錄/<資源>?<參數>
即可建立連結

Stateful & Stateless Connection

FTP、SMTP、POP3通訊協定皆是Stateful Connection(有狀態式連結),Client與Server端需要一直保持通訊直到Client端結束連結or產生錯誤,期間的指令、結果傳輸都透過此通訊連結處理。

HTTP則屬於Stateless Connection(無狀態式連結),每個URL的HTTP請求都需與Web Server建立連結,但處理結束並將結果回應(response)至用戶端Web Browser後便立即終止通訊連結

Stateless Connection的問題:當網頁處理網頁交易(Transaction)時,若需要使用數個網頁,將無法得知是否都來自同一個Web Browser使用者(因為每個URL請求都是獨立的通訊連結)

解決方法:
1. Web Browser在用戶端建立Cookie
2. 使用Server page的Session物件紀錄用戶端資訊

動態與靜態網頁

靜態:html
動態:CSS JS(根據瀏覽者輸入資訊不同而呈現不同內容)
網路應用與管理-HTTP通訊協定 (4)
0:23

Proxy Server

Proxy(代理):提升網路使用效率的運作機制,主要構想為將前一人抓取的資料,儲存一份備份在自己的區域網路伺服器上,當下一位使用者要抓取相同資料時,就會由這個Proxy Server(網路代理伺服器)提供資料以達到對外頻寬的節省。

功能:

  • 將經常需要存取的資訊存入快取記憶體(Cache)來降低資料傳輸量
  • 讓多位使用者透過單一連線存取網路,透過嚴謹管理來控制使用者存取網路位址、服務
  • 防止外部網路位址在未經授權下進入區域網路

Web 2.0

由O’Reilly提出,網路從’靜態網路集合‘轉向’提供軟體服務‘的概念
四大特色:參與取代接收、分享取代控制、資源分散取代資源集中、免費取代收費

Web 2.0新技術
AJAX:建立互動式網頁應用的網頁開發技術
RSS:新聞頻道、網誌等等與其他網頁內容的數據交換規範
Wiki:網路上開放多人協同創作的超文件系統

Cloud

Cloud:一種新的運算方式,將大量的資訊、功能以服務的形式透過網路提供給使用者

雲端種類:Private/Public/Hybrid Cloud(私有/公有/混合雲)

雲端運算產業三級分層:
1. Software as a Service(SaaS, 雲端軟體):雲端產業的上層分級,提供各式軟體服務,參與者:軟體開發者
2. Platform as a Service(PaaS, 雲端平台):雲端產業的中層分級,打造程式作業平台與作業系統平台,讓開發人員可以透過網路撰寫程式、服務,一般消費者也可在上面執行程式,參與者:Google, Apple…
3. Infrastructure as a Service(IaaS, 雲端設備):雲端產業的下層分級,將基礎設備整合,分隔成不同服務提供企業租用,參與者:Amazon、Intel、IBM…

--

--