iT邦幫忙

2024 iThome 鐵人賽

DAY 2
0
Software Development

從Servlet到Spring MVC系列 第 2

Day01 Basic - HTTP

  • 分享至 

  • xImage
  •  

Web 架構

簡單的說就是我們輸入URL(Uniform Resource Locator)後,委由瀏覽器發出http請求,透過網路傳送到Web Server,由Server 解析請求並傳送回應資訊的過程。
https://ithelp.ithome.com.tw/upload/images/20240916/201280843Ujw0B8bxf.png

URL (Uniform Resource Loacator)

首先我們仔細瞧瞧我們輸入的URL,URL就是我們對遠端主機資源請求的路徑,所以你需要的是主機IP跟放置資源的位置,由於人的記憶有限並無法記憶每台訪問主機的IP,對於有意義的文字才會記得,而Fully Qualified Domain Name最終會被DNS主機映射IP讓後續的網路層可以運作
https://ithelp.ithome.com.tw/upload/images/20240916/20128084cd2g0flbzD.png

Http/Https

在URL最前頭有個Schema Http/Https(Hyper Text transfer protocol),它代表通訊協定,也就是跟電腦約定好電腦間溝通的方式,它有以下幾個特點

  1. Stateless:每一次的請求都是無關的,Web Server回應你之後不會記得你是誰
  2. Request/Response通訊模型:你問我答的概念

http request / http response

報文的組成包含

  • start line
    在requests中又叫做request line會有這次請求的方式GET/POST/PUT/DELETE等等,responses中又稱status line會回傳Server針對你請求所做回應的狀態碼200/403/404等。

    status code description
    200 請求成功
    302 重導向,表示Server要求browser重新發一個請求,Server會發送一個Location在header指定請求新的URL位置
    304 使用本地cache
    400 Bad Request客戶端請求有誤Server無法解析
    401 Unauthorized未授權的請求
    400 Bad Request客戶端請求有誤Server無法解析
    404 找不到資源
    405 請求的方式不允許
    500 Server出現內部錯誤
  • Http Header
    這個部份是要給web server或瀏覽器的額外資訊

    • requests header
      夾帶使用者訪問的主機,使用者使用的瀏覽器,可以接收的檔案類型等
    • responses header
      夾帶Server提供的相關資訊,還有最重要的Content-Type資訊,好讓收到的瀏覽器如何解析內容。
  • empty line
    CR LF空行

  • body
    body就是夾帶我們請求內容資訊或是Server回應我們的資訊內容
    https://ithelp.ithome.com.tw/upload/images/20240916/20128084dgEVIHLL69.png

Server Side

最早之前為產生動態頁面,Server端處理請求會透過CGI(Common Gateway Interface)去調用程式,處理完成後交給Web Server返回Response,那個時期每一個請求都會起一個Process來處理請求。而Java的Web Server會起一個thread去找對應的Servlet處理請求並回應。
https://ithelp.ithome.com.tw/upload/images/20240916/20128084eOMfjM4Jz2.png

結語

以下是Wassim Chegham這位老兄對瀏覽器輸入網址後發生的事所畫的圖,從中更能幫助我們日後學習
https://ithelp.ithome.com.tw/upload/images/20240916/201280846j9nwcRhVt.png
Reference:https://x.com/manekinekko/status/1281704000572858375

Reference


上一篇
Day00 - 開賽
下一篇
Day02 Basic - Application Server
系列文
從Servlet到Spring MVC36
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言