圖片來源:MDN
HTTP是網路世界資訊交換的基礎,這項發明一開始是為了提供發布和接收HTML頁面的方法,請求的資源會用URL來表示。
在網路的世界裡擁有資源的會被稱為伺服器,請求資源的則稱為客戶端(通常是瀏覽器)。
比方說各位鐵人每天發表文章的同時,瀏覽器就必須告訴伺服器說「欸!我要給你一篇文章,幫我存一下」,或是各位鐵人彼此觀摩他人的文章時,瀏覽器就必須不斷向伺服器發送顯示文章的請求,
人類之間用不同的語言溝通,那瀏覽器與伺服器之間要怎麼溝通呢?當然不可能用上述那種擬人式的方式,必須要有固定的格式規範才能快速處理人類的需求,HTTP就明確規定了這兩者溝通的內容格式。
先來看看標準的請求和回應,無論是請求還是回應都分成三個區塊:
start-line
:header
body
圖片來源:MDN
前面提到在請求的start-line中會包含執行的動作,也稱為請求方法,以下我們來看看常見的請求方法
方法 | 代表行為 |
---|---|
GET | 取得資料 |
POST | 發送資料給伺服器 |
PUT | 更新資料 |
DELETE | 刪除資料 |
PATCH | 修改資料 |
如同請求方法,伺服器的回應方式也分門別類成五個類型並且用代碼去區分:
200
OK404
Not found
例如某位參賽的鐵人刪除文章後,其他鐵人若再點選文章網址就會給予此錯誤
418
I'm a teapot
418錯誤源自於愚人節玩笑,據說某些網站對於不想處理的請求會給予此回應
顯而易見的兩者之間只差了一個 S ,這個 S 代表的是安全(secure)的意思。由於過往的 HTTP 傳輸方式,所有資料都是以明文傳送,在資料傳輸的過程中若有駭客竊聽時,就會造成資料外洩。於是瀏覽器公司透過SSL/TLS的技術將文件加密,才有了現在使用的HTTPS。
支撐網路世界運作的技術和所需的知識量真的無比龐大,一日探索HTTP雖然只看到非常表面的概念,還是覺得收獲滿滿~
參考資料:
Web Security: an introduction to HTTP
HTTP Messages
從傳紙條輕鬆學習基本網路概念
超文本傳輸協定
支撐網路世界運作的技術和所需的知識量真的無比龐大
謝謝佳萱將龐大的資訊量整理出來~~ 靠吸食你的文章補充這部分的營養
好文敲碗敲碗續集