# 網管上課 ## 0. FileSystem / 路徑表示法 ### 0.1 相對路徑 - `./hi.txt` ### 0.2 絕對路徑 - `/home/snmg/hi.txt` ## 1. Port / TCP / UDP ### 1.1 Port - 16 bit number - communication endpoint - MUX - 1~1024 System port ### 1.2 TCP / UDP - OSI L4 #### 1.2.1 TCP - 可靠 - Three-way Handshake - 使用序號 - 報文段排序 - 重複性檢測 - 校驗與錯誤檢測 - 丟包 / 延時控制 - 擁塞控制 - 遺失重傳 #### 1.2.2 UDP - Connectionless - 無錯誤檢查 / 糾正 - 容錯應該在應用程式層實作 - 適用於有延時需求的應用 (遊戲、VoIP) - DNS、DHCP、NTP - OpenVPN ## 2. HTTP / Web - 80 Port ### 2.1 HTTP Verbs - GET - POST - PUT - PATCH - DELETE - HEAD - OPTIONS #### 2.1.1 GET - 一般請求 - application/x-www-form-urlencoded - 安全、Cache #### 2.1.2 POST - 上傳資料 / 安全性需求 - multipart/form-data - 非安全、不可 Cache ### 2.2 HTTP Status Code - 1XX: 訊息,伺服器繼續處理 - 101 Switching Protocols - 2XX: Success - 200 OK - 206 Partial Content - 3XX Redirect - 301 Moved Permanently - 302 Found - 只允許 GET / HEAD 的 Redirect - 後續會改用 GET / HEAD - 303 See Other - POST -> GET - 307 Temporary Redirect - 308 Permanent Redirect - 不允許更改請求方法 - 4XX Client-side Error - 400 Bad Request - 401 Unauthorized - Authorization Header - 403 Forbidden - Authorization Header does not help fixing this error - 404 Not Found - 伺服器不願揭示錯誤時 - 405 Method Not Allowed - 408 Request Timeout - 413 Request Entity Too Large - 418 I'm a teapot - Hyper Text Coffee Pot Control Protocol, HTCPCP - BREW / POST - The resulting entity body MAY be short and stout. - 426 Upgrade Required - TLS / WebSocket - 429 Too Many Requests ### 2.3 HTTPS - TLS - 443 Port - Everything is encrypted - SNI ## 3. Linux 指令 / SSH ### 3.1 基本檔案操作指令 - ls - cp - mv - rm - nano - chmod ### 3.2 SSH - Port 22 - 會被亂踹 ## 4. DNS / IP / Domain ### 4.1 Domain - [blah].tld ### 4.2 DNS - Domain -> IP - Port 53 (not encrypted) #### 4.2.1 DNS Records - A - AAAA - CNAME - 不能有其他記錄 - DNAME (CNAME for domain) - Subdomain 也會一起映射 - ANAME - 等同 A 記錄 - 速度比 CNAME 快 - MX - TXT
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up