2017年12月2日 星期六

JSP-Servlet (2) - HTML & HTTP

HTML & HTTP差異:
  • HTML: (HyperText Markup Language 超文字標記語言) 瀏覽器必須了解的語言。瀏覽器是一種知道如何和伺服器溝通的軟體(如Safari, Mozilla)。當伺服器回應請求的時候,通常會傳給瀏覽器一組以HTML寫成的指令,由瀏覽器解譯HTML後將內容呈現給使用者。但有時候較舊版的瀏覽器可能會不了解使用新版HTML語法所寫的網頁內容
  • HTTP: (HyperText Transport Language 超文字傳輸協定) client及server之間的對話大多是HTTP(以此溝通),此協定支援簡單的request&response。基本上web說的語言就是HTTP。web server透過HTTP將HTML送給client。因此其實HTTP回應內包含HTML
又,HTTP執行在TCP/IP上。
- TCP負責將資料完整地從一個node傳送到另一個node。在運送過程有可能會被分割成幾個部分。但最後能保有完整性。
- IP是將封包從一台主機順利繞道一台主機的底層網路協定。
HTTP是支援web特定功能的網路協定。但依賴TCP/IP取得完整請求與回應

HTTP request關鍵元素:
  1. HTTP method
  2. URL
  3. Form parameters
HTTP response關鍵元素:
  1. Status Code
  2. Content-type
  3. Content
HTTP method:
  1. GET: 簡單的請求。如,要求server取出資源(HTML, JPEG file, PDF file等)。但也可以傳送(一點)資源

    • 傳送字元數量有限,取決於server(tomcat在conf/server.xml內可更改maxHttpHeaderSize="65536"參數),因此如果client在search bar輸入很長的資料,GET可能會無法運作
    • 安全性問題,GET會將資量附加在URL後面,出現在瀏覽器的URL欄位中。如帳號密碼等敏感資料
    • 如果使用POST代替GET,就不能把Form submission的頁面加入我的最愛當成書籤
    • 下例是一個GET的範例,使用?將路徑與參數隔開,參數間以&連結。兩個部分加起來得到的字串就是HTTP request所傳送的完整URL
    • http://ecshweb.pchome.com.tw/search/v3.3/?q=花茶%20&scope=all&sortParm=rnk&sortOrder=dc&cateId=DBAJ11

  2. POST: 像是Get的加強版,如了可以取出server資源,以能夠傳送使用者的資料
    • 設計為傳送複雜請求
    • 使用者在網頁上填的資料(如表單等),就會被加到message body (或稱為payload),資料量可以很大
  3. HEAD
  4. TRACE
  5. PUT
  6. DELETE
  7. OPTIONS
  8. CONNECT

MIME Type:
response header內的content type的值,就是MIME Type,他告知接收瀏覽器即將要接收怎麼樣的資料,好讓瀏覽器知道要怎麼展示


此值對應了request內header的Accept欄位(瀏覽器可以接受哪一種格式)

網頁傳送步驟:
  1. 使用者在search bar輸入URL
  2. 瀏覽器建立HTTP GET request
  3. 瀏覽器將此HTTP GET 請求傳送至server
  4. server根據某種對應關係找到該頁面
  5. server產生HTTP response
  6. 將其頁面傳回至client
  7. 瀏覽器收到後,根據HTTP內的HTML解譯,並將結果呈現給使用者
URL:(Uniform Resource Locator)
如下範例:
https://www.wangsteak.com.tw:443/advice/wang/menu.html
  • https: (告訴server這是哪一種protocal,此例為https)
  • www.wangsteak.com.tw: server, 實體server的獨特名字,對應到IP,可以直接使用IP代替server,但通常domain name比較好記
  • 443: port。server的很多應用程式會以port區隔。http預設是80
    • 一台server可以有0-65535,共65536個 (0~1023 port已經保留給一些知名的服務)
    • FTP: 21
    • Telnet: 23
    • POP3: 110
    • SMTP: 25
    • TIME server: 37
  • advice/wang: path,server被請求的網路位置
  • menu.html: resource,請求的檔案。假如被省略大部分會預設加上index.html

沒有留言:

張貼留言