看板 Diary 關於我們 聯絡資訊
耍廢也要有期限,期限是25分鐘,這樣才不會浪費太多時間, 我去買了全家的橘香巧克力,跟我所想的味道一樣,坦白說我不喜歡, 不是不好吃,是味道很奇怪,真要說的話,我覺得之前的小農鮮奶霜淇淋比較好吃, 然後更好吃的是草莓,比草莓更好吃的是抹茶,我期待這兩種口味回歸的時候。 今天懶洋洋的,連早上也被我刻意睡過去(平常的話就早起拚進度了阿) 我到現在還是什麼都不太想做!! 但是我今天無論如何都要完成昨天的功課,所以我提早停止耍廢了: 1.當發出一個 GET/POST 請求時,中間過程會經過哪些傳輸協定 [img]https://upload.cc/i1/2021/12/02/2f4oPT.png[/img] 一開始瀏覽器會先跟伺服器進行三向交握,接著瀏覽器會對伺服器發出request請求, ex: get HTTP:www.google.tw 網址,在應用層HTTP發送, 之後伺服器在TCP傳輸層傳輸封包給瀏覽器,傳輸完成之後伺服器會傳送 HTTP 200 OK狀態碼,如果還有其他檔案例如CSS檔或是圖檔, 會再發出一次request請求,程序如上,等檔案都傳輸完成結束的時候,會進行 TCP四次揮手中止連線。 2.前端該理解的 TCP/IP 觀念 https://yakimhsu.com/project/project_w4_Network_TCP_IP.html TCP/IP有四層,分別是應用層,HTTP就算是應用層, 傳輸層,TCP、UDP就算是傳輸層, 網路層,IP就算是網路層, 網路連結層,Ethernat乙太網就算是網路連結層。 3.在與後端介接 API 時,如何透過 TCP/IP 、wireshark、Fiddler 來觀察是否 ok 可以先用終端機ping網址,可以獲取該網址的IP,使用ip.src=="IP位置" or ip.dst=="IP位置"篩選TCP封包,此時wireshark或是Fiddler可以看到各個封包的資訊 包括是否傳輸成功200 OK,和觀察封包大小,如果最後有四次揮手那就算OK了 4.輸入瀏覽器網址後,過程中發生了哪些事? https://cythilya.github.io/2018/11/26/what-happens-when-you-type-an-url-in-the-browser-and-press-enter/ 當使用者在瀏覽器網址列輸入網址並送出後,browser process 的 ui thread 接收到使 用者輸入的資料,ui thread 會要求發出網路請求,此時 network thread 開始執行 DNS lookup、建立連線,而當連線成功、資料傳輸完畢後,network thread 通知 ui thread 資料已準備好,browser process 利用 IPC 將資料傳遞給 render process 以進 行頁面渲染,渲染完畢即可讓使用者看到畫面。 當使用者在瀏覽器網址列鍵入網址,瀏覽器的 ui thread 接收到輸入的資料,network thread 便開始將這網址字串進行解析以便下載資源,而這個網址字串會解析成以下部份 … 協定類型:http、https、ftp 等。 伺服器位址:這裡可以放域名(domain name)或 IP address,若為域名就需要做 DNS 解析,例如:www.sample.com。 埠號:預設為 80,若為預設就不用寫出來。 資源層級 UNIX 檔案路徑,例如:/main/page/。 檔案名:index.html。 查詢(query string):以問號 ? 開始,並以 & 分隔,例如:?keyword=abc&happy=abc 。 片段 ID(fragment):以 hash 開頭,常用於定位,例如:#heading-1 URL 解析完畢後,若伺服器位址的地方是放置域名而非 IP address 就需要做 DNS 解析 以得到 IP,接著再建立 TCP/IP 連線來傳輸檔案。備註,由前面所述可知,網路連線是 single thread 的,一個請求即使用一個 network thread。 TCP/IP(Transmission Control Protocol/Internet Protocol)是網路上的一種通訊協 定,用於在不同設備或環境間傳送訊息。另,HTTPS 是指將 HTTP 使用 SSL 加密後再利 用 TCP 發送,加強安全性。TCP/IP 會經由三次握手建立連線,再經由四次揮手斷開連線 。 客戶端發送請求後,伺服器收到請求會進行處理並回應,而 HTTP 請求或回應訊息的結構 是:方法、通用標頭、請求或回應標頭、請求或回應身體。 客戶端(意即瀏覽器的 renderer process)收到從伺服器的回應後後會開始做解析和渲 染,這部份的流程為 =======================我坦白說以上我都看不太懂=============================== 當你輸入網址後,瀏覽器會進行以下一系列流程,透過域名伺服器(Domain Name Server, DNS) ,去進行域名解析,查找域名是對應哪個 IP 地址,最後從該 IP 地址獲 取網頁等網絡資源。 當域名解析成功,找到相關 IP 地址,接下來到Web伺服器處理請求, 當 web serve r接收到一個 HTTP 請求 (request),便會進行一個網站處理流程,最後產 生一個 HTML 的響應(response)給瀏覽器。 最後伺服器將處理好的HTML,交給瀏覽器處理,最後顯示在你的屏幕上 接下來就是瀏覽器進行處理, 伺服器將處理好的HTML字符串交給瀏覽器後被一句句讀取 解析。過程主要分為載入,解析,渲染。 =====================以上我看得懂但是又覺得太簡化了========================== 補充: IPV4與IPV6的差別: 這兩個世代的網路協定,最明顯的差異就在於其提供的網路位址數量。IPv4的位址格式是 採用32位元長度,位址能提供2的32次方個,換算後約42億個。雖然IPv4有這麼多IP位址 ,但依舊在2011年的2月3日消耗殆盡。 而IPv6的位址格式則採用128位元長度,其位址能提供2的128次方個。它所能提供的IP位 址,遠遠超過IPv4的數量,預估能讓地球上每個人都分到100萬個IP位址,或是地球上每 平方公尺面積皆提供1000多個IP位址。簡而言之,轉換到IPv6後,IP位址的數量多到幾乎 不可能用盡。 -- 鹽烤雞胸肉黑胡椒烤雞胸肉孜然烤雞胸肉咖哩烤雞胸肉蒜香醬油烤雞胸肉咖哩優格烤雞胸肉 蒜香咖哩黑胡椒烤雞胸肉匈牙利紅椒烤雞胸肉迷迭香烤雞胸肉義式烤雞胸肉 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.138.127.34 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Diary/M.1638518043.A.F7E.html
MadCaro: https://w3c.hexschool.com/blog/8d691e4f 12/03 16:36
MadCaro: 這個講得比較看得懂 12/03 16:36
MadCaro: 之前那個一堆看不懂的專有名詞,是在炫耀自己懂很多嗎 12/03 16:37
MadCaro: 好吧 我決定看完網路的資源再重看一次課程 12/03 16:38
MadCaro: 很花時間但這是基礎要打好才行 12/03 16:38
MadCaro: https://i.imgur.com/XK6XcZV.jpg 12/03 17:00
MadCaro: https://i.imgur.com/t1AIteE.jpg 12/03 17:00