You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
家裡的 wifi 機器連了 3 台電腦,這 3 台電腦都有自己的內網 IP(虛擬 IP),他們對到的對外 IP 是同一個(可能是浮動 IP 或是固定 IP)。我家的內網 IP,可以跟你家的內網 IP 一樣
可以透過 IP 連到別人的電腦
虛擬 IP
規劃 IP 時已經預留了三個網段的 IP ,做為內部網域的虛擬 IP 之用。這三個預留的 IP 網段分別是:
A Class:10.0.0.0 - 10.255.255.255
B Class:172.16.0.0 - 172.31.255.255
C Class:192.168.0.0 - 192.168.255.255
Port 的作用(連接埠、端口)
一台電腦上可以有很多服務(HTTP 服務,mail 服務)
如果有程式在監聽那個 port 就會執行任務
電腦之間依照網際網路傳輸層 TCP/IP 協定的協定通信,不同的協定都對應不同的埠。This is a list of TCP and UDP port numbers used by protocols of the Internet protocol suite for operation of network applications.
常用 Port
HTTP 80
HTTPS 443 (:443 就是 HTTPS 用的 port)
21/TCP,UDP : FTP
22/TCP,UDP : SSH(Secure Shell)
API (Application Programming Interface) 應用程式介面
透過這個『介面』來溝通
提供一個介面讓誰誰誰來拿資料
舉例:知道這台電腦的網路狀況? --> 作業系統有提供一個 api 讓你知道網路狀況,所以你就去呼叫這隻 Api 得到你要的資料
『網站』的背後是什麼?
server(伺服器)
browser 發一個 request 給 server -->
server 處理之後 -->
再發一個 response 給 browser -->
browser 再解析出來
伺服器:一台電腦,有裝伺服器程式,專門處理 request, response
為什麼我們需要協定(protocol)
通訊協定(Communications Protocol,也稱傳輸協定)
網路傳輸協定(Internet Communication Protocol)
網路是如何傳輸的
由上到下:從 HTTP 協定開始講起
令人討厭的 HTTP request 的一生
(browser -> 製造 request -> 傳給 server)
(server -> 處理 -> 傳 response 回來)
計程車司機:DNS Server
定義某個 domain name 指向 某一個 IP
設定: 127.0.0.1 github.com
browser 在解析 domain 時,就會優先讀取這個檔案的設定把 github.com 導去 127.0.0.1
(原本要導去 aaa.com 的 request 你可以藉由 本地端 設定 hosts 導去別的 IP 位置)
瀏覽器只是另一個程式
由下到上:從 TCP/IP 開始談起
TCP/IP 是什麼?
實現
如今,大多數商業作業系統包括TCP/IP棧並且預設安裝它們,對於大多數用戶來說,沒有必要去探求它們如何實現。TCP/IP包含在所有的商業Unix和Linux發布包中,同樣也包含在Mac OS X、Windows系統和Windows Server中。
網際網路協議
HTTP 協議,是建立在 TCP 協議之上,TCP 協議是建立在 IP 協議之上
HTTP --> TCP --> IP
定飲料 --> 需三次握手 --> 傳紙條協定
定 NBA 即時戰況 --> 不需三次握手 --> 傳紙條協定
(圖片來源:鳥哥的 Linux 私房菜)
TCP/IP 模型分層
TCP 與 UDP
TCP : 是一種連接導向的、可靠的、基於位元組流的傳輸層通訊協定
UDP : 一旦把應用程式發給網路層的資料傳送出去,就不保留資料備份(所以 UDP 有時候也被認為是不可靠的資料報協定),追求快速
TCP 為什麼可靠?
三次握手 (three way handshake)
IP 地址 (Internet Protocol Address)
固定 IP、浮動 IP 與虛擬 IP
虛擬 IP
規劃 IP 時已經預留了三個網段的 IP ,做為內部網域的虛擬 IP 之用。這三個預留的 IP 網段分別是:
A Class:10.0.0.0 - 10.255.255.255
B Class:172.16.0.0 - 172.31.255.255
C Class:192.168.0.0 - 192.168.255.255
Port 的作用(連接埠、端口)
監聽那個 port
就會執行任務常用 Port
API (Application Programming
Interface
) 應用程式介面Web API
Web API => HTTP API
透過 HTTP 協定的 API
SDK (Software Development Kit)
東西都包裝好了,可以直接 call function 用
例如:twitter.getTimeline()
如果沒有 SDK 就需要用 HTTP request 的方法去拿到資料
資料格式的選擇
歷久不衰 XML (Extensible Markup Language)
name 的欄位中,資料是 “Tim”。
JSON 資料格式 (JavaScript Object Notation)
透過網路交換資料
第一種方式:SOAP
第二種方式:SOAP 以外的 HTTP API
RESTful 到底是什麼?
第 n 種方式:跳脫 HTTP 的限制
HTTP 只是一個 protocol,除了 HTTP 以外,有其他的 protocol 也在進行資料交換的動作
curl(基於網路協定,對指定URL進行網路傳輸)
How do I POST JSON data with Curl from a terminal/commandline to Test Spring REST?
nslookup
解析 domain 的 IP 位置
ping
測試可不可以連接到那台 server,會持續送封包
telnet
ping 一個指定的 port,測試這台 server 有沒有開這個 port
資源引用:
reqres.in
Linux Curl Command 指令與基本操作入門教學
如何生动形象、切中要点地讲解 OSI 七层模型和两主机传输过程?
TCP 三向交握 (Three-way Handshake)
通俗大白話來理解TCP協議的三次握手和四次分手
The text was updated successfully, but these errors were encountered: