Port
- Port 連接埠(端口):
- 為了區別在同一台電腦上不同服務,後面才要加上數字(冒號後面)
- 12.20.77.60:80 (80 就是一個 port)
- 常用 port:
- HTTP 80
- HTTPS 443
- FTP 21
- 測試常用 port 3000, 4000, 4001, 8080
TCP & UDP
- 指的是傳輸層的兩種協議
- TCP (Transmission Control Protocol) 是一個可靠的傳輸協議,大部分網路協議都建立在這裡
- UDP (User Datagram Protocol) 是一個快速的傳輸協議,用在視訊上比較多
- 網際網路協議套組
TCP 三次握手
- 可靠的原因是連接流程裡面有三次握手 (three-way handshake)
- 傳輸控制協定-TCP
TCP/IP 總結
協議 | 內容 |
---|---|
HTTP/FTP | 紙條上的內容 |
TCP/UDP | 傳紙條時的三次確認/不確認,一直傳紙條 |
IP | 寄紙條,寫收件者跟寄件人 |
實體層 | 郵差幫忙寄信 |
API
- Application Programming Interface 應用程式介面
- 透過介面來溝通
- 透過 API,可以讓雙方交換資料
- API, WebAPI:
- API: 不一定要有網路也可以交換資料
- WebAPI: 通常提到這個,都是指 HTTP API = 透過 HTTP 協定的 API,例如臉書或者 Twitter 的 API
串接 HTTP API 實戰
資料格式
- 純文字與自定義格式
- XML: 利用標籤來標明屬性
- JSON: 基於 JS 的物件所產生的資料格式,長得很像 JS 的物件,但還是不太一樣,例如 key 跟 value 都要用雙引號包起來
- 任何一種資料格式,都可以在任何的程式語言裡面使用
透過網路交換資料的第一種方式:SOAP
- 這個方式現在少用了
- 都透過 XML 做資料交換
透過網路交換資料的第二種方式:其他
- SOAP 以外的 HTTP API
NET101 哪幾個影片沒有很懂
- 實作一個超簡易 HTTP Server (看完昨天筆記以後就懂了)
串接 HTTP API 實戰
- reqres.in
下面的程式碼沒辦法在電腦執行,明天研究
const request = require('request'); request( 'https://reqres.in/api/users/2', function (error, response, body) { console.log(body); } );