1. HTTP

1. Non-persistent and Persistent Connection

(1) Non-persistent:

當要傳送一個物件或訊息的,就會要求TCP connection做一次動作,所以當需要傳送很多物件

時,就會讓TCP connection做很多次的動作,就會讓傳輸時間變長,HTTP/1.0就是使用Non-

persistent  HTTP。

(2) Persistent:

可以允許同時有很多的物件去要求TCP connection做動作,也就是說不需要做重新連線的動作

,這樣就可以節省傳輸的時間,HTTP/1.1就是使用persistent  HTTP。

2. Parallel and Pipelined Transmission

 

3. HTTP Message 格式

(request)  Request line, Request header lines, Blank line, Entity boday

(response) Status line, Response hader lines, blank line, Entity body

 

4. Client-Server溝通: Cookie, Session

cookie包含四項元素:

(1)HTTP回應message中的cookie header line

(2)HTTP請求message中的cookie header line

(3)保存於使用者終端系統上,並由user瀏覽器管理的cookie檔案

(4) 網路上的後端database

(in HTTP response message) Set-cookie:

(in HTTP request message) Cookie:

 

5. Caching

Traffic intensity: aL/R

Parameters: hit rate, LAN delay, Intrernet delay 

 

6. Conditional Get

proxy

(response) Last-Modified: 

(request) If-modified-since:

(response) HTTP/1/1 304 Not Modified

 

---F20-Web基本原理與技術---

編輯者 : 林采昕 408262143 / 張字青 408262349 / 陳嬿婷 408262416 / 許瀚丰 408262208/ 龔子昀 408261060

bps (bits per second)
application layer (應用層) : HTTP
TCP : transport layer
IP : network layer and routing

  • 資料傳輸量
  • 傳輸頻率
  • 環境
  • 應用特性

網路協定

  • 網路技術

    • 硬體+軟體
    • 有線+無線
  • 協定(Protocol)

    • 資料格式
    • 傳送規則
  • 無線電波傳輸

傳輸層功用

  • 多工/復用+解多工
  • 流量控制
  • 擁塞控制
  • 錯誤控制

TCP協定( Transmission Control Protocol, TCP)

  • 傳輸控制協定
    可靠邏輯連結通道的傳輸協定,AKA連結式協定(conection-oriented protocol ),建立連結。
  • TCP結合序號、回應編號、緩衝記憶體

UDP協定(User Datagram Protocol, UDP)

  • 使用者資料封包協定(connectionless protocol),不建立連結。
  • 用於檢核錯誤控制,不保證資料傳送達多媒體網路管理,DNS伺服器都使用UDP

應用層

應用層 : HTTP CoAP MQTT
HTTP(HyperText Transfer Protocol ):用於行動裝置,使用TCP建立連結。

CoAP : 輕量級協定

MQTT : 發布/訂閱

HTTP

  • 原本是為了發布和接收HTML頁面,HTTP or HTTPS 協定請求的資源,由統一資源識別URI標籤
  • 伺服器聽用戶端的請求,收到後回復用戶端response message內容狀態包括狀態(e.g. HTTP/ 200 OK) 以及相關內容,如請求網頁、錯誤訊息…
    • Get(很長一段) : 向伺服器發出讀取指定資料
    • Post(網址)
    • User_Agent(送給伺服器端)
    • HTTP 請求方式 Request Method
      • DELETE : 請求伺服器刪除所標識的資源
      • PUT : 向指定資源位置上傳其最新內容
      • CRUD(上列四者) : (create/read/update/delete) 新增/查詢/更改/刪除
  • 技術開發
    • Web Serveices ampng HTTP servers
    • REST API (Representatioonal State Transfer)

HTTP 請求方式 Response Method

  • last_modified(上次更新) : 若無最新版本,使用上一次的資料,常與cache做結合。

HTTP1.1(承襲HTTP1.0)

  • Pipeline(管線化) Request : 可一次傳輸多個Request
  • cache(快取/緩存) Proxy(代理) : 最早是為了資安。以前有抓過的東西,會存下來,無須重新抓。

Netspace 瀏覽器

  • Cookie 存放於瀏覽器端(client) eg. 購物車
  • SSL (Secure Socket Layer) / TLS(Transportv Layer Security) eg. http://…
  • JavaScript 與網頁HTML/CSS 共同經由伺服器送至連覽器執行

HTTP/2

  • HTTP1.1 有效率、功能、安全的問題
  • HTTP/2 由SPDY演化而來
  • 後出現HTTP/2 向下相容1.1,程序無需大修改(瀏覽器、伺服器需修改)
  • 多工(Multiplexing) 瀏覽器端可同時發出多個HTTP Request,並設定優先順序
  • 伺服器端推播(Server Push)與提示(Server Hint)
  • Simplex 單工 → 傳統瀏覽器
  • Half-Duplex 半雙工 ⇌
  • Full-Duplex 全雙工 ↔ (可同時多組)
  • client+request <->sever+push
  • Header編碼壓縮

Web History

CGI(Common Gateway Interface)=>PHP,JSP,ASP,Ror,Django,node,js,…