Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introduction to Web

nrs
May 17, 2019

Introduction to Web

GMO Technology boot camp (新卒研修)の Web 概論講義資料です。
以下の内容の概要を解説しています。
* URI
* HTTP
* HTML

# URL
HomePage: https://nrslib.com
Twitter: https://twitter.com/nrslib

nrs

May 17, 2019
Tweet

More Decks by nrs

Other Decks in Technology

Transcript

  1. HTTP/1.1 200 OK Cache-Control: public, no-store, max-age=0, no-cache, no-store, must-revalidate

    Pragma: no-cache Content-Type: text/html; charset=utf-8 Name: Masanobu Naruse Job: Programmer; Developer Evangelist Company: GMO Internet, Inc. Team: Hosting Product Team; Developer Relations Team <!DOCTYPE html> <html> <head> <meta charset=utf-8" /> <title>Introduction</title> </head> <body> <h1>URL</h1> <p> <ul> <li><a href="https://nrslib.com">HomePage</a></li> <li><a href="https://twitter.com/nrslib">Twitter (@nrslib)</a></li> </ul> </p> </body> </html>
  2. Web

  3. Web

  4. Browser Server Request GET https://nrslib.com/ HTTP/1.1 Host: nrslib.com Connection: keep-alive

    Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9, image/webp,image/apng,*/*;q=0.8,application/signed- exchange;v=b3 Accept-Encoding: gzip, deflate, br Accept-Language: ja,en-US;q=0.9,en;q=0.8 Cookie: _ga=GA1.2.1676611691.1531371612
  5. Browser Server Request Response HTTP/1.1 200 OK Server: nginx Date:

    Wed, 10 Apr 2019 03:21:30 GMT Content-Type: text/html; charset=UTF-8 Content-Length: 7641 Connection: keep-alive Set-Cookie: PHPSESSID=8cgpb0s6e570qrgjgdklaqcnf4; path=/ Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate Pragma: no-cache Link: <https://nrslib.com/wp-json/>; rel="https://api.w.org/" Vary: Accept-Encoding Content-Encoding: gzip ]{sG;̊<z6Xso&R(J5ҀΌ0$Uzg0O&@Gٱd/=aq-Mwst9=?`Ki6_. *** FIDDLER: RawDisplay truncated at 128 characters. Right-click to disable truncation. ***
  6. Web

  7. URI

  8. 1. プログラミング言語の拡張子(.pl, .jsp, etc.)を利用しない 2. 実装に依存(cgi-bin, etc.)したパス名を利用しない 3. セッションIDを含めない 4.

    リソースを表現する名詞にする http://example.jp/home http://example.jp/home.jsp?jsessionid=99999999
  9. Browser Server Request HTTP/1.1 200 OK Content-Type: text/html; charset=UTF-8 ...

    <!DOCTYPE html> <html> ... GET http://nrslib.com HTTP/1.1 Host: nrslib.com ... Response
  10. Browser Server Request Response HTTP/1.1 200 OK Content-Type: text/html; charset=UTF-8

    ... <!DOCTYPE html> <html> ... GET http://nrslib.com HTTP/1.1 Host: nrslib.com ...
  11. Browser Server Request Response HTTP/1.1 200 OK Content-Type: text/html; charset=UTF-8

    ... <!DOCTYPE html> <html> ... GET http://nrslib.com HTTP/1.1 Host: nrslib.com ...
  12. 401

  13. 418

  14. HTTP/1.1 200 OK Content-Type: text/html; charset=UTF-8 Set-Cookie: SessionId=ak1sAs23 <!DOCTYPE html>

    <html> ... リクエストライン or レスポンスライン ヘッダ 空行 ボディ
  15. ドメイン駆動設計を 検索 <section> <h1>初心者向けセミナー開催しました。</h1> <p>たくさんのひとたちが来場してくれて大盛り上がりです。</p> </secion> <section> </h1>クリーンアーキテクチャのセッションをしました。</h1> <p>とても難解な講義になりますが皆さんがんばってついてきてくれました。 </p>

    </section> <section> <h1>ボトムアップドメイン駆動設計というセミナーを開催しました。</h1> <p>知識を得るのに熱心なお客様にたくさん集まって頂けて楽しいセッショ ンでした。</p></section> タイトルだけ検索
  16. ドメイン駆動設計を 検索 <section> <h1>初心者向けセミナー開催しました。</h1> <p>たくさんのひとたちが来場してくれて大盛り上がりです。</p> </secion> <section> </h1>クリーンアーキテクチャのセッションをしました。</h1> <p>とても難解な講義になりますが皆さんがんばってついてきてくれまし た。</p>

    </section> <section> <h1>ボトムアップドメイン駆動設計というセミナーを開催しました。</h1> <p>知識を得るのに熱心なお客様にたくさん集まって頂けて楽しいセッショ ンでした。</p></section> タイトルだけ検索
  17. HTTP/1.1 200 OK Cache-Control: public, no-store, max-age=0, no-cache, no-store, must-revalidate

    Pragma: no-cache Content-Type: text/html; charset=utf-8 Name: Masanobu Naruse Job: Programmer; Developer Evangelist Company: GMO Internet, Inc. Team: Hosting Product Team; Developer Relations Team <!DOCTYPE html> <html> <head> <meta charset=utf-8" /> <title>Introduction</title> </head> <body> <h1>URL</h1> <p> <ul> <li><a href="https://nrslib.com">HomePage</a></li> <li><a href="https://twitter.com/nrslib">Twitter (@nrslib)</a></li> </ul> </p> </body> </html>
  18. HTTP/1.1 200 OK Cache-Control: public, no-store, max-age=0, no-cache, no-store, must-revalidate

    Pragma: no-cache Content-Type: text/html; charset=utf-8 Name: Masanobu Naruse Job: Programmer; Developer Evangelist Company: GMO Internet, Inc. Team: Hosting Product Team; Developer Relations Team <!DOCTYPE html> <html> <head> <meta charset=utf-8" /> <title>Introduction</title> </head> <body> <h1>URL</h1> <p> <ul> <li><a href="https://nrslib.com">HomePage</a></li> <li><a href="https://twitter.com/nrslib">Twitter (@nrslib)</a></li> </ul> </p> </body> </html>
  19. HTTP/1.1 200 OK Cache-Control: public, no-store, max-age=0, no-cache, no-store, must-revalidate

    Pragma: no-cache Content-Type: text/html; charset=utf-8 Name: Masanobu Naruse Job: Programmer; Developer Evangelist Company: GMO Internet, Inc. Team: Hosting Product Team; Developer Relations Team <!DOCTYPE html> <html> <head> <meta charset=utf-8" /> <title>Introduction</title> </head> <body> <h1>URL</h1> <p> <ul> <li><a href="https://nrslib.com">HomePage</a></li> <li><a href="https://twitter.com/nrslib">Twitter (@nrslib)</a></li> </ul> </p> </body> </html> <title>Introduction</title>
  20. HTTP/1.1 200 OK Cache-Control: public, no-store, max-age=0, no-cache, no-store, must-revalidate

    Pragma: no-cache Content-Type: text/html; charset=utf-8 Name: Masanobu Naruse Job: Programmer; Developer Evangelist Company: GMO Internet, Inc. Team: Hosting Product Team; Developer Relations Team <!DOCTYPE html> <html> <head> <meta charset=utf-8" /> <title>Introduction</title> </head> <body> <h1>URL</h1> <p> <ul> <li><a href="https://nrslib.com">HomePage</a></li> <li><a href="https://twitter.com/nrslib">Twitter (@nrslib)</a></li> </ul> </p> </body> </html> <title>Introduction</title> start tag 開始タグ end tag 終了タグ
  21. HTTP/1.1 200 OK Cache-Control: public, no-store, max-age=0, no-cache, no-store, must-revalidate

    Pragma: no-cache Content-Type: text/html; charset=utf-8 Name: Masanobu Naruse Job: Programmer; Developer Evangelist Company: GMO Internet, Inc. Team: Hosting Product Team; Developer Relations Team <!DOCTYPE html> <html> <head> <meta charset=utf-8" /> <title>Introduction</title> </head> <body> <h1>URL</h1> <p> <ul> <li><a href="https://nrslib.com">HomePage</a></li> <li><a href="https://twitter.com/nrslib">Twitter (@nrslib)</a></li> </ul> </p> </body> </html> <title>Introduction</title> start tag 開始タグ end tag 終了タグ element 要素
  22. HTTP/1.1 200 OK Cache-Control: public, no-store, max-age=0, no-cache, no-store, must-revalidate

    Pragma: no-cache Content-Type: text/html; charset=utf-8 Name: Masanobu Naruse Job: Programmer; Developer Evangelist Company: GMO Internet, Inc. Team: Hosting Product Team; Developer Relations Team <!DOCTYPE html> <html> <head> <meta charset=utf-8" /> <title>Introduction</title> </head> <body> <h1>URL</h1> <p> <ul> <li><a href="https://nrslib.com">HomePage</a></li> <li><a href="https://twitter.com/nrslib">Twitter (@nrslib)</a></li> </ul> </p> </body> </html> <title>Introduction</title> element 要素
  23. HTTP/1.1 200 OK Cache-Control: public, no-store, max-age=0, no-cache, no-store, must-revalidate

    Pragma: no-cache Content-Type: text/html; charset=utf-8 Name: Masanobu Naruse Job: Programmer; Developer Evangelist Company: GMO Internet, Inc. Team: Hosting Product Team; Developer Relations Team <!DOCTYPE html> <html> <head> <meta charset=utf-8" /> <title>Introduction</title> </head> <body> <h1>URL</h1> <p> <ul> <li><a href="https://nrslib.com">HomePage</a></li> <li><a href="https://twitter.com/nrslib">Twitter (@nrslib)</a></li> </ul> </p> </body> </html>
  24. HTTP/1.1 200 OK Cache-Control: public, no-store, max-age=0, no-cache, no-store, must-revalidate

    Pragma: no-cache Content-Type: text/html; charset=utf-8 Name: Masanobu Naruse Job: Programmer; Developer Evangelist Company: GMO Internet, Inc. Team: Hosting Product Team; Developer Relations Team <!DOCTYPE html> <html> <head> <meta charset=utf-8" /> <title>Introduction</title> </head> <body> <h1>URL</h1> <p> <ul> <li><a href="https://nrslib.com">HomePage</a></li> <li><a href="https://twitter.com/nrslib">Twitter (@nrslib)</a></li> </ul> </p> </body> </html> <meta charset=“utf-8” />
  25. HTTP/1.1 200 OK Cache-Control: public, no-store, max-age=0, no-cache, no-store, must-revalidate

    Pragma: no-cache Content-Type: text/html; charset=utf-8 Name: Masanobu Naruse Job: Programmer; Developer Evangelist Company: GMO Internet, Inc. Team: Hosting Product Team; Developer Relations Team <!DOCTYPE html> <html> <head> <meta charset=utf-8" /> <title>Introduction</title> </head> <body> <h1>URL</h1> <p> <ul> <li><a href="https://nrslib.com">HomePage</a></li> <li><a href="https://twitter.com/nrslib">Twitter (@nrslib)</a></li> </ul> </p> </body> </html> <meta charset=“utf-8” /> 要素がないときの 書き方
  26. HTTP/1.1 200 OK Cache-Control: public, no-store, max-age=0, no-cache, no-store, must-revalidate

    Pragma: no-cache Content-Type: text/html; charset=utf-8 Name: Masanobu Naruse Job: Programmer; Developer Evangelist Company: GMO Internet, Inc. Team: Hosting Product Team; Developer Relations Team <!DOCTYPE html> <html> <head> <meta charset=utf-8" /> <title>Introduction</title> </head> <body> <h1>URL</h1> <p> <ul> <li><a href="https://nrslib.com">HomePage</a></li> <li><a href="https://twitter.com/nrslib">Twitter (@nrslib)</a></li> </ul> </p> </body> </html> <meta charset=“utf-8” /> attribute 属性
  27. HTTP/1.1 200 OK Cache-Control: public, no-store, max-age=0, no-cache, no-store, must-revalidate

    Pragma: no-cache Content-Type: text/html; charset=utf-8 Name: Masanobu Naruse Job: Programmer; Developer Evangelist Company: GMO Internet, Inc. Team: Hosting Product Team; Developer Relations Team <!DOCTYPE html> <html> <head> <meta charset=utf-8" /> <title>Introduction</title> </head> <body> <h1>URL</h1> <p> <ul> <li><a href="https://nrslib.com">HomePage</a></li> <li><a href="https://twitter.com/nrslib">Twitter (@nrslib)</a></li> </ul> </p> </body> </html> ヘッダ
  28. HTTP/1.1 200 OK Cache-Control: public, no-store, max-age=0, no-cache, no-store, must-revalidate

    Pragma: no-cache Content-Type: text/html; charset=utf-8 Name: Masanobu Naruse Job: Programmer; Developer Evangelist Company: GMO Internet, Inc. Team: Hosting Product Team; Developer Relations Team <!DOCTYPE html> <html> <head> <meta charset=utf-8" /> <title>Introduction</title> </head> <body> <h1>URL</h1> <p> <ul> <li><a href="https://nrslib.com">HomePage</a></li> <li><a href="https://twitter.com/nrslib">Twitter (@nrslib)</a></li> </ul> </p> </body> </html> ボディ