Skip to main content

Posts

Showing posts with the label http

[探索 5 分鐘] HTTP 發展歷史

為什麼要發明 HTTP ? HTTP 是全球資訊網 (WWW) 的資料通訊的基礎 ! 「全球資訊網」就是 World Wide Web, 就是大家熟知的 WWW, 而 HTTP 就是為了能夠讓資料在這個網際網路流通所訂定的通訊協定。我還有印象, 大學教授曾說中國的狼煙就是最早的通訊協定; 透過煙的顏色, 數量, 來告知遠地的人信息, 把網際網路擴大解釋, 中國是鼻祖 (疑?)。 HTTP 是全球資訊網 (WWW) 的資料通訊的基礎 查詢到「UCLA 舉辦了網際網路的30歲慶生會」這個標題時間是 1999/09/12, 才知道網際網路已經發展將近 50 年了 (1969 ~ 2017 截稿)。 1969 年, 網際網路 (Internet) 之父, 美國 UCLA 教授 Leonard Kleinrock 將 UCLA 與 Stanford 兩個實驗室的電腦, 試連成功 1971 年, Internet 首度連到美國以外地區, 如英國、挪威 1973 年, TCP/IP 通訊協定被提出 1984 年, 美國國防部將 TCP/IP 作為所有電腦網路的標準 1990 年, 英國的 Berners Lee (瑞士粒子物理實驗室) 成功的提出與開發了全球資訊網 (World Wide Web),被稱為「WWW 之父」 1991 年, Berners Lee 在瑞士歐洲核子研究組織建立了 HTML、HTTP 1990 年 ~ 1999 年間, 網際網路風靡全球, 直到 2000 年網路泡破。 2016年, 有個有趣的事, 美聯社認為「網際網路」已和「電話」一樣成為一件一般的事物, 不具有專屬商標的意義, 於是開始在其格式手冊中規定「internet」和「web」一詞全部小寫, 紐約時報也隨後跟進。今年已經 2017 了, 記得 i 跟 w 都要小寫 ! HTTP 是 TCP/IP 的應用層協定 HTTP 不管從網路 OSI 模型 7 層, 或是 TCP/IP 4 層來看, 都是基於 TCP 層 (傳輸層) 與 IP 層 (網路層) 的應用層, 但事實上只要符合 HTTP 的 RFC 標準, 是可以基於其他傳輸方式來溝通的。參考  wiki  整理下表, 可看出 HT...

[探索 3 分鐘] session 與 cookies

Web 開發者除了必須了解 HTTP 協定, session 與 cookies 大概也是數一數二重要的概念了。最近不小心爬文爬到 2005 年  Cookieless ASP.NET  這篇文章, 覺得挺有趣, 這邊筆記一下重點。 概念 wiki  關於 HTTP session state 的解釋 HTTP is a stateless protocol. A stateless protocol does not require the HTTP server to retain information or status about each user for the duration of multiple requests. However, some web applications implement states or server side sessions using for instance HTTP cookies or hidden variables within web forms. HTTP 本身是一種無狀態的協定, 這是天生的。所以 session state 其實是一個人工的產物, 微軟在 1997 年推出 ASP 技術時提到這個概念。session state 可以讓應用程序保存 user 的部分資訊做為持續互動用途。每個 session 會有一個唯一的 ID (字符串), 瀏覽器若啟用 cookies 機制則 session ID 會存入 cookies 中 (或其他 hidden 欄位中), 客戶端每次發出 request 的封包內就會夾帶這個 session ID 供伺服器驗證並取回先前資料用。 Cookies 是有問題的東西 ? cookies 好像是個麻煩精 ? 他其實只是一堆文字形式的 key value 組合, 儲存於客戶端, 依據建立連線的 domain 為名的資料夾中, 本身並不是一隻程式, 所以不會有攻擊行為。但就是因為是一個單純的檔案以及文字, 任何安裝於客戶機器上的電腦, 都有機會取得內容, 有些敏感信息可能因此曝光, 更惡意的還可能竄改資料。 使用 Cookieless Sessions 如果因為瀏覽器被取消 cookie 功能或是要...