# 網路基礎概念 - Client & Server - TCP(Transmission Control Protocol) - HTTP (Hypertext Transfer Protocol) ## Client & Server **一般來說傳輸資料的兩端會分為 客戶端 ( Client ) 跟 伺服器端 ( Server )** - Client: 以網頁來說就是你的瀏覽器、電腦,主要會發送 「 請求 request 」到 Server 端 - Server: 收到 request 開始處理資料,完成後會回傳 「回應 response 」到 Client 端 **以下為簡易程序:** - 瀏覽器發送 HTTP request 到 Server - request 包含 head 跟 body - Server 回傳 response 到瀏覽器 - response 包含 head 跟 body - 瀏覽器進行解析 html、css、js、圖片檔案…等等,渲染成可讀性高的網頁內容 **再詳細一點的request(但還是很簡易):** 1. 一開始先發送 request 到副檔名為 .html 的 url 2. DNS(域名系統) 解析成 IP 位置 3. Server 接收到 request、 回傳 response 4. 瀏覽器解析 html 檔案 5. 根據 html 內容,一但發現有 CSS、JS、圖片檔案,再發送各檔案的 request(這裡就1.2.3步驟那邊) 6. 發送完包含在 html 所有資源的 request 7. 開始下載資源 ( CSS、JS、圖片檔 ) 8. 進行渲染網頁 ## TCP(Transmission Control Protocol) **三項交握(Three-way handshake)** 舉個A(Client),B(Server)互相傳遞資料的例子: 1. A先傳給B資料 --- A傳送功能正常 2. B接收到資料 --- B接收功能正常 3. B回傳A資料(告知已收到) --- B傳送功能正常 4. A接收到資料(知道B接收功能正常) --- A接收功能正常 5. A再回傳資料給B,讓B知道他傳送的資料已收到 6. B接收到資料(知道A接收功能正常) --- B傳送功能正常 **A-->B, B-->A, A-->B** 以上為三次的傳遞動作,這樣A,B都知道雙方的接收跟傳送功能都正常,就可以正常互傳遞資料,不過次數不是一定,也可以三次以上,但三次算最低限度 **TCP為通訊協定**,必須制定一些協定,才可以保證資料傳送接收正常 #### 網路分層: ``` - 保證收發正常(TCP) --- 如何傳送資料 - 傳送者/接收者(IP:Internet Protocol) --- 收發地址 - 傳送資料(實體電纜) --- 實際傳送資料 ``` ## HTTP (Hypertext Transfer Protocol) #### 應用在HTTP的網路分層: 這裡加上了HTTP協定 ``` - 訂機票(HTTP) --- 實際應用 - 保證收發正常(TCP) --- 如何傳送資料 - 傳送者/接收者(IP:Internet Protocol) --- 收發地址 - 傳送資料(實體電纜) --- 實際傳送資料 ``` **HTTP通訊協議:** - 標準化內容格式 - html分為header & body - 狀態碼(status code)顯示傳送接收結果 - 200成功,3XX重新導向,4XX客戶端錯誤,5XX伺服器端錯誤 - 請求資料方法(HTTP method) - GET接收,POST傳送,DELETE刪除,PUT更新(覆蓋資料),PATCH更新(針對現有資料更新) **Port(連線埠): 服務代碼** - 傳送到指定的Server IP : Port ,才能使用那個網頁的服務 - **EX.** server IP:80 --- HTTP伺服器服務代碼(瀏覽器就是80,默認碼) - **EX.** server IP:21 --- FTP伺服器服務代碼 我們把上面的HTTP網路再分詳細一點 #### 網路分層: ``` - 訂機票(HTTP) / 訂食物(FTP) --- 實際應用 - 保證收發正常(TCP) --- 如何傳送資料 - 傳送者/接收者(IP:Internet Protocol) --- 收發地址 - 傳送資料(實體電纜) --- 實際傳送資料 ``` 另外,傳送資料協定也有其他種: **UDP(User Datagram Protocol)用戶數據報協議,用於即時性傳送資料** **EX.** live直播.即時通話或是即時視訊,因為重點在傳輸速度,但不可保證收發資料正常 **最後把上面分層整理一下,變成下面這樣:** #### TPC/IP 四層模型 ``` - 訂機票(HTTP) / 訂食物(FTP) --- 實際應用 應用層 - 保證收發正常(TCP)/ 即時傳輸(UDP) --- 如何傳送資料 傳輸層 - 傳送者/接收者(IP:Internet Protocol) --- 收發地址 網路互連層 - 傳送資料(實體電纜) --- 實際傳送資料 網路存取層 ``` ## 網域名稱系統(DNS:Domain Name System) **輸入網址後利用DNS查詢對應的IP位址,也就是把網址轉換成IP位址,或可以逆向操作** #### 網域層級表示:  #### DNS 的查詢流程: 1. client side 先向DNS伺服器查詢網址的IP位址 2. DNS會先查詢自己記憶體內有沒有暫存這網址 3. 沒有就轉向Root domain查詢 4. Root domain沒查詢到在往Top level domain查詢 5. 以此類推直到找到此網址IP - 如果我們查尋同一個網站,電腦就會再hosts將這網站的IP位址紀錄下來,這樣一來以後只要重新查找相同網站就會從hosts找到並馬上連到那個網站,但假如查找沒搜尋過的網站,電腦就會找尋比較久,這段時間其實就是電腦再向DNS伺服器查尋IP位址 ##### 來源: - [DNS 伺服器是什麼?如何運用?](https://www.stockfeel.com.tw/dns-%E4%BC%BA%E6%9C%8D%E5%99%A8%E6%98%AF%E4%BB%80%E9%BA%BC%EF%BC%9F%E5%A6%82%E4%BD%95%E9%81%8B%E7%94%A8%EF%BC%9F/) - [網路基礎](https://yakimhsu.com/project/project_w4_Network_http.html)
×
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