class
  • Node.js安裝與NPM使用
  • require 、 module.exports
  • fs(文件操作)
  • EventEmitter(事件觸發)
  • util(工具類)
  • stream(流)
  • Assert(斷言)
  • Process(進程)
  • Repl(自訂命令列)
  • Path與URL
  • TCP, UDP
  • HTTP, HTTPS
  • ES6,ES7,ES8
  • Express框架
  • Koa框架
  • MySQL
  • MongoDB
  • RESTful API 與 API 文件撰寫
  • 使用Babel, ESLint
  • Webpack
  • WebSocket
  • Redis
  • React 基本概念1
  • React 基本概念1-1(搭配webpack)
  • React基本概念1-2(新增元件)
  • React 基本概念2
  • react-router
  • Redux 基本概念1
  • Redux 基本概念2
  • 結合Node.js與React.js搭建論壇網站1
  • 結合Node.js與React.js搭建論壇網站2
  • 結合Node.js與React.js搭建論壇網站3
  • 結合Node.js與React.js搭建論壇網站4
  • 結合Node.js與React.js搭建論壇網站5
  • 部署
  • 快取與緩存
  • Web安全機制
  • 單元測試
  • 自動化流程與搭建travis ci
  • 結合jenkins與bitBucket
  • 團隊合作Git flow與Telegram bot
Powered by GitBook
On this page
  • HTTP, HTTPS
  • HTTP 請求方法
  • 你可能也聽過SPDY或是HTTP2一詞
  • HTTP實作

Was this helpful?

HTTP, HTTPS

PreviousTCP, UDPNextES6,ES7,ES8

Last updated 4 years ago

Was this helpful?

HTTP, HTTPS

HTTP是TCP的上層協定,設計HTTP最初的目的是為了提供一種發布和接收HTML頁面的方法。通過HTTP或者HTTPS協定請求的資源由統一資源識別元(Uniform Resource Identifiers,URI)來標識,也就是我們俗稱的網址

通常,由HTTP用戶端發起一個請求(例如在網址列輸入網址),將會建立一個到伺服器指定埠(預設是80埠)的TCP連線。HTTP伺服器則在那個埠監聽用戶端的請求。一旦收到請求,伺服器會向用戶端返回一個狀態,比如"HTTP/1.1 200 OK"

上面的200,指的是status code,可參考

以下列出常見的Status Code

HTTP 請求方法

比較常見的是以下幾種

GET:向指定的資源發出「顯示」請求。使用GET方法應該只用在讀取資料,而不應當被用於產生「副作用」的操作中,例如在Web Application中。其中一個原因是GET可能會被網路蜘蛛等隨意存取。參見安全方法
POST:向指定資源提交資料,請求伺服器進行處理(例如提交表單或者上傳檔案)。資料被包含在請求本文中。這個請求可能會建立新的資源或修改現有資源,或二者皆有。
PUT:向指定資源位置上傳其最新內容。
DELETE:請求伺服器刪除Request-URI所標識的資源。

Restful api,其中包含對資源的操作包括獲取、創建、修改和刪除資源,這些操作正好對應HTTP協議提供的GET、POST、PUT和DELETE方法。 可參考:

而傳輸封包中的資料格式可以是XML或是JSON或是年代算比較新的protocol buffer

你可能也聽過SPDY或是HTTP2一詞

可參考

主要是拿來改善原本的HTTP/1.1的幾個問題,HTTP2的優點包含

1.在單一網路連線上,可以同時傳輸多個 HTTP Request 與 Response
2.傳輸封包Header的壓縮,因為在 HTTP/1.1 的Headers是沒有壓縮的
3.Binary的封包結構
4.伺服器主動推送資源

HTTP實作

參考程式碼HTTP與HTTPS資料夾

https://zh.wikipedia.org/zh-tw/HTTP%E7%8A%B6%E6%80%81%E7%A0%81
https://zh.wikipedia.org/wiki/REST
https://ye11ow.gitbooks.io/http2-explained/content/part11.html
https://http2.github.io/faq/