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); } );



