Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

初學者都該了解的 HTTP 通訊協定基礎

7 546 vues

Publié le

Facebook 直播網址: https://www.facebook.com/will.fans/videos/1727290680633402/

Facebook 活動網址: https://www.facebook.com/events/137465946827346/

我們將在 2017-07-01 (台北) 與 2017-07-16 (高雄) 各開一堂【ASP.NET Web API 2 開發實戰】課程,這堂課程正好相當倚賴 HTTP 基礎知識,如果沒有好的知識基礎,便無法真正吸收消化這些優秀框架背後的設計理念。

有鑑於許多 Web 開發人員對於 HTTP 通訊協定總是一知半解,雖然知道有 HTTP 的存在,但卻說不上能有甚麼用,或是無法將所學知識應用在各式 Web 開發工作上,例如撰寫 Web API、RESTful API 或開發各式前後端網站應用等等,都需要相當程度的 HTTP 基礎知識,才能讓你在網站開發的路上見樹又見林。

本次直播活動我將分享幾個重要的 HTTP 基礎觀念,從技術原理到實務應用,一次呈現給大家,直播當晚還可以讓大家任意提問 (AMA),歡迎樓上揪樓下、阿公揪阿嬤、阿母揪阿爸,跟我一同挑戰難纏的 Web 世界吧! 🙂

Publié dans : Technologie
  • Visit this site: tinyurl.com/sexinarea and find sex in your area for one night)) You can find me on this site too)
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • Sex in your area for one night is there tinyurl.com/hotsexinarea Copy and paste link in your browser to visit a site)
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • Girls for sex are waiting for you https://bit.ly/2TQ8UAY
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • Meetings for sex in your area are there: https://bit.ly/2TQ8UAY
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici

初學者都該了解的 HTTP 通訊協定基礎

  1. 1. 初學者都該了解的 HTTP 通訊協定基礎 Hypertext Transfer Protocol 多奇數位創意有限公司 技術總監 黃保翕 ( Will 保哥 ) 部落格:http://blog.miniasp.com/
  2. 2. 超文本傳輸協定 ( HTTP ) Hypertext Transfer Protocol
  3. 3. 目前 HTTP 通訊協定的版本 • HTTP/0.9 – 於 1991 年發表 (已廢止) • HTTP/1.0 – 於 1996 年 5 月發表( RFC 1945 ) • HTTP/1.1 – 於 1997 年 1 月發表( RFC 2068 ) – 於 1999 年 6 月發布 HTTP/1.1 更新版 ( RFC 2616 ) – 於 2014 年 6 月再次更新 HTTP/1.1 並將規格文件拆成六份 • HTTP/2 (Wikipedia) – 於 2015 年 5 月發布 ( RFC 7540 ) (瀏覽器相容性) – 僅針對 HTTP/1.1 的 Message Syntax 部分做出強化 3
  4. 4. HTTP/0.9 • 於 1990 年由 Tim Berners-Lee 提出最初的 HTTP 建議 ( WWW ) • 實作重點 – 用戶端要求是以 ASCII 字元為主 ( 單行命令即可發出要求  GET / ) – 用戶端要求會以一個 換行字元 (CRLF) 來結束 – 伺服器回應是以 ASCII 字元為主,回應內容為是 HTML 文件 – 每次執行完 Request / Response 就會自動關閉連線 • 主要特點 – Client / Server 架構、Request / Response 協定 – 跑在 TCP/IP 上的 ASCII 協定 (要求/回應) – 被設計用來傳輸 HTML 文件 – 每完成一次 ASCII 協定就會自動關閉連線 4
  5. 5. 5 $ telnet google.com 80 Trying 172.217.24.14... Connected to google.com. Escape character is '^]'. GET /about HTTP/1.0 301 Moved Permanently Location: http://www.google.com/about/ Content-Type: text/html; charset=UTF-8 X-Content-Type-Options: nosniff Date: Sat, 17 Jun 2017 03:23:44 GMT Expires: Mon, 17 Jul 2017 03:23:44 GMT Server: sffe Content-Length: 225 X-XSS-Protection: 1; mode=block Cache-Control: public, max-age=2592000 Age: 252414 <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"> <TITLE>301 Moved</TITLE></HEAD><BODY> <H1>301 Moved</H1> The document has moved <A HREF="http://www.google.com/about/">here</A>. </BODY></HTML> Connection closed by foreign host.
  6. 6. HTTP/1.0 • 在 1991 到 1995 年之間,所謂 瀏覽器 騰空出世! • 於 1996 年 5 月發表 HTTP/1.0 版 ( RFC 1945 ) • 與 HTTP/0.9 不同的部分 – 用戶端要求是以 ASCII 字元為主,但可發送多行命令 (含要求標頭) • 先送出要求方法,再送出要求標題,最後以一個 額外的換行字元 結束 – 伺服器回應是以 ASCII 字元為主,回應內容會區分 • 狀態列 • 回應標頭 • 回應內文主體 ( 不僅僅是 HTML 文件,可以是更多內容類型 ) – 每完成一次 Request / Response 交握就會自動關閉 TCP/IP 連線 6
  7. 7. 7 $ telnet google.com 80 Trying 172.217.24.14... Connected to google.com. Escape character is '^]'. GET /about HTTP/1.0 HTTP/1.0 301 Moved Permanently Location: http://www.google.com/about/ Content-Type: text/html; charset=UTF-8 X-Content-Type-Options: nosniff Date: Sat, 17 Jun 2017 03:23:44 GMT Expires: Mon, 17 Jul 2017 03:23:44 GMT Server: sffe Content-Length: 225 X-XSS-Protection: 1; mode=block Cache-Control: public, max-age=2592000 Age: 252414 <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"> <TITLE>301 Moved</TITLE></HEAD><BODY> <H1>301 Moved</H1> The document has moved <A HREF="http://www.google.com/about/">here</A>. </BODY></HTML> Connection closed by foreign host.
  8. 8. HTTP/1.1 • 於 1997 年 1 月發表 HTTP/1.1 版 ( RFC 1945 ) • 於 1999 年 6 月發布 HTTP/1.1 更新版 ( RFC 2616 ) • 與 HTTP/1.0 不同的部分 – 傳輸協議的效能改進 ( 新增不少 HTTP 標頭定義 ) • 持續連線狀態 ( persistent connection ) ( MDN ) • 切塊編碼傳輸 ( chunked encoding transfer ) ( MDN ) • 位元範圍請求 ( byte range request ) ( MDN ) • 額外快取機制 ( cache control ) • 請求管線作業 ( request pipelining ) ( 需搭配持續連接狀態特性才能用 ) 8
  9. 9. 9 $ telnet www.miniasp.com 80 Trying 172.217.24.14... Connected to google.com. Escape character is '^]'. GET / HTTP/1.1 Host: www.miniasp.com Connection: close Range: bytes=0-20 HTTP/1.1 206 Partial Content Content-Length: 21 Content-Type: text/html Content-Range: bytes 0-20/21540 Last-Modified: Tue, 11 Aug 2015 09:45:01 GMT Accept-Ranges: bytes ETag: "d1309b641ad4d01:0" Server: Microsoft-IIS/8.0 X-Powered-By: ASP.NET Set-Cookie: ARRAffinity=de668c30a13e01616d34fb3773ed38c1363f5c626ca6001081524d8948435956;Path =/;Domain=www.miniasp.com Date: Tue, 20 Jun 2017 06:23:12 GMT Connection: close <!DOCTYPE html> <htmConnection closed by foreign host.
  10. 10. 目前 HTTP/1.1 的六大規格 • RFC 7230 HTTP/1.1: Message Syntax and Routing • RFC 7231 HTTP/1.1: Semantics and Content (最重要) • RFC 7232 HTTP/1.1: Conditional Requests • RFC 7233 HTTP/1.1: Range Requests • RFC 7234 HTTP/1.1: Caching • RFC 7235 HTTP/1.1: Authentication 10
  11. 11. 關於 HTTP 通訊協定的基本常識 • The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. – 無狀態特性 ( stateless ) – 分散式架構 ( distributed ) – 協作的架構 ( collaborative ) – 超本文 ( hypertext = not just "text" but with "links" ) 11
  12. 12. 初學者應了解 HTTP 的基本運作方式 • 如何發出 HTTP 要求 (HTTP Request) – 要求方法 ( Request Methods ) • GET, POST, DELETE, PUT, PATCH, … – 要求標頭 ( Request Headers ) • Connection, Content-Type, Accept-Language, … – 斷行符號 ( CRLF ) – 要求內容主體 ( Request Body ) • 如何回應 HTTP 訊息 (HTTP Response) – 回應狀態碼 ( Response Status Codes ) • HTTP/1.1 200 OK – 回應標頭 ( Response Headers ) – 斷行符號 ( CRLF ) – 回應內容主體 ( Response Body) 12
  13. 13. 相關連結 • 必備工具 – Postman – Fiddler free web debugging proxy • 推薦書籍 – 高效能網站開發指南 – 高效能網站建置指南 – Web 效能優化日誌 Volume 2 • 報名課程 – 2017/07/01 (六) 《台北》ASP.NET Web API 2 開發實戰 – 2017/07/16 (日)《高雄》ASP.NET Web API 2 開發實戰 13
  14. 14. 聯絡資訊 • The Will Will Web 記載著 Will 在網路世界的學習心得與技術分享 – http://blog.miniasp.com/ • Will 保哥的技術交流中心 (臉書粉絲專頁) – http://www.facebook.com/will.fans • Will 保哥的噗浪 – http://www.plurk.com/willh/invite • Will 保哥的推特 – https://twitter.com/Will_Huang

×