Enviar búsqueda
Cargar
HTTP入門
•
22 recomendaciones
•
8,197 vistas
Sota Sugiura
Seguir
About HTTP 社内向け勉強会のスライドです。
Leer menos
Leer más
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 118
Descargar ahora
Descargar para leer sin conexión
Recomendados
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
CDNの仕組み(JANOG36)
CDNの仕組み(JANOG36)
J-Stream Inc.
Marp Tutorial
Marp Tutorial
Rui Watanabe
WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介
Yasuhiro Mawarimichi
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
shinjiigarashi
目grep入門 +解説
目grep入門 +解説
murachue
福岡大学における公開用NTPサービス事例(LACNOG2019発表資料日本語版)
福岡大学における公開用NTPサービス事例(LACNOG2019発表資料日本語版)
Sho FUJIMURA
分散システムについて語らせてくれ
分散システムについて語らせてくれ
Kumazaki Hiroki
Recomendados
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
CDNの仕組み(JANOG36)
CDNの仕組み(JANOG36)
J-Stream Inc.
Marp Tutorial
Marp Tutorial
Rui Watanabe
WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介
Yasuhiro Mawarimichi
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
shinjiigarashi
目grep入門 +解説
目grep入門 +解説
murachue
福岡大学における公開用NTPサービス事例(LACNOG2019発表資料日本語版)
福岡大学における公開用NTPサービス事例(LACNOG2019発表資料日本語版)
Sho FUJIMURA
分散システムについて語らせてくれ
分散システムについて語らせてくれ
Kumazaki Hiroki
nginx入門
nginx入門
Takashi Takizawa
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Hiro H.
大規模サービスを支えるネットワークインフラの全貌
大規模サービスを支えるネットワークインフラの全貌
LINE Corporation
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作る
Go Miyasaka
オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選
Takuya Ueda
TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話
Kazuho Oku
作って(壊して?)学ぶインターネットのしくみ サイバーエージェントの実験用ASの紹介 / Introduce experimental AS in ...
作って(壊して?)学ぶインターネットのしくみ サイバーエージェントの実験用ASの紹介 / Introduce experimental AS in ...
whywaita
TLS, HTTP/2演習
TLS, HTTP/2演習
shigeki_ohtsu
挫折しないRedmine (2022)
挫折しないRedmine (2022)
Go Maeda
フロー技術によるネットワーク管理
フロー技術によるネットワーク管理
Motonori Shindo
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
ssuser070fa9
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
kwatch
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
sasezaki
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?
Takuya Ueda
オープンソースライセンスの基礎と実務
オープンソースライセンスの基礎と実務
Yutaka Kachi
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門
Akihiro Kuwano
ログ解析基盤におけるストリーム処理パイプラインについて
ログ解析基盤におけるストリーム処理パイプラインについて
cyberagent
技術ブログを書こう
技術ブログを書こう
akira6592
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
ゼロから始めるBlob
ゼロから始めるBlob
Kazunori Hamamoto
今から始めるDocument db
今から始めるDocument db
Kazunori Hamamoto
Más contenido relacionado
La actualidad más candente
nginx入門
nginx入門
Takashi Takizawa
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Hiro H.
大規模サービスを支えるネットワークインフラの全貌
大規模サービスを支えるネットワークインフラの全貌
LINE Corporation
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作る
Go Miyasaka
オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選
Takuya Ueda
TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話
Kazuho Oku
作って(壊して?)学ぶインターネットのしくみ サイバーエージェントの実験用ASの紹介 / Introduce experimental AS in ...
作って(壊して?)学ぶインターネットのしくみ サイバーエージェントの実験用ASの紹介 / Introduce experimental AS in ...
whywaita
TLS, HTTP/2演習
TLS, HTTP/2演習
shigeki_ohtsu
挫折しないRedmine (2022)
挫折しないRedmine (2022)
Go Maeda
フロー技術によるネットワーク管理
フロー技術によるネットワーク管理
Motonori Shindo
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
ssuser070fa9
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
kwatch
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
sasezaki
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?
Takuya Ueda
オープンソースライセンスの基礎と実務
オープンソースライセンスの基礎と実務
Yutaka Kachi
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門
Akihiro Kuwano
ログ解析基盤におけるストリーム処理パイプラインについて
ログ解析基盤におけるストリーム処理パイプラインについて
cyberagent
技術ブログを書こう
技術ブログを書こう
akira6592
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
La actualidad más candente
(20)
nginx入門
nginx入門
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
大規模サービスを支えるネットワークインフラの全貌
大規模サービスを支えるネットワークインフラの全貌
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作る
オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選
TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話
作って(壊して?)学ぶインターネットのしくみ サイバーエージェントの実験用ASの紹介 / Introduce experimental AS in ...
作って(壊して?)学ぶインターネットのしくみ サイバーエージェントの実験用ASの紹介 / Introduce experimental AS in ...
TLS, HTTP/2演習
TLS, HTTP/2演習
挫折しないRedmine (2022)
挫折しないRedmine (2022)
フロー技術によるネットワーク管理
フロー技術によるネットワーク管理
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?
オープンソースライセンスの基礎と実務
オープンソースライセンスの基礎と実務
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門
ログ解析基盤におけるストリーム処理パイプラインについて
ログ解析基盤におけるストリーム処理パイプラインについて
技術ブログを書こう
技術ブログを書こう
Docker Compose 徹底解説
Docker Compose 徹底解説
Destacado
ゼロから始めるBlob
ゼロから始めるBlob
Kazunori Hamamoto
今から始めるDocument db
今から始めるDocument db
Kazunori Hamamoto
ゲームから学ぶデザイン思考術
ゲームから学ぶデザイン思考術
Yasuhisa Hasegawa
Web API入門
Web API入門
Masao Takaku
RESTful API 入門
RESTful API 入門
Keisuke Nishitani
デザインのためのデザイン
デザインのためのデザイン
Masayuki Uetani
Destacado
(6)
ゼロから始めるBlob
ゼロから始めるBlob
今から始めるDocument db
今から始めるDocument db
ゲームから学ぶデザイン思考術
ゲームから学ぶデザイン思考術
Web API入門
Web API入門
RESTful API 入門
RESTful API 入門
デザインのためのデザイン
デザインのためのデザイン
Similar a HTTP入門
Webページが表示されるまで
Webページが表示されるまで
Masataka Suzuki
Httpを振り返ってみる
Httpを振り返ってみる
galluda
[BurpSuiteJapan]HTTP基礎入門
[BurpSuiteJapan]HTTP基礎入門
Burp Suite Japan User Group
サーバーの初歩的な話セミナー@大阪20120901
サーバーの初歩的な話セミナー@大阪20120901
Masayuki Abe
HTTP2入門
HTTP2入門
Sota Sugiura
HTTPの仕組みについて
HTTPの仕組みについて
iPride Co., Ltd.
簡単なHTTPサーバの作成
簡単なHTTPサーバの作成
Panu Avakul
How tomakemodernwebservice d2
How tomakemodernwebservice d2
Shinsuke Matsuda
Lesson Html 01
Lesson Html 01
kamihide
PIC RoR Heroku
PIC RoR Heroku
mgwsuzuki
20160618_HTML5プロフェッショナル認定試験レベル1 技術解説セミナー in OSC北海道2016
20160618_HTML5プロフェッショナル認定試験レベル1 技術解説セミナー in OSC北海道2016
Takahiro Kujirai
パンダの会 Html5概説
パンダの会 Html5概説
Masakazu Muraoka
Basic HTML Introduction
Basic HTML Introduction
Minoru Hayakawa
Semantic html が止まらない
Semantic html が止まらない
Yumi uniq Ishizaki
最新Webプロトコル傾向と対策
最新Webプロトコル傾向と対策
Kensaku Komatsu
Howtomakewebservice days2
Howtomakewebservice days2
Shinsuke Matsuda
websocket-survery
websocket-survery
hogemaru_
第43回HTML5とか勉強会 最新webプロトコル傾向と対策
第43回HTML5とか勉強会 最新webプロトコル傾向と対策
Kensaku Komatsu
H T M L5 入門編
H T M L5 入門編
ngi group.
Webサーバ、HTML
Webサーバ、HTML
Shuhei Iitsuka
Similar a HTTP入門
(20)
Webページが表示されるまで
Webページが表示されるまで
Httpを振り返ってみる
Httpを振り返ってみる
[BurpSuiteJapan]HTTP基礎入門
[BurpSuiteJapan]HTTP基礎入門
サーバーの初歩的な話セミナー@大阪20120901
サーバーの初歩的な話セミナー@大阪20120901
HTTP2入門
HTTP2入門
HTTPの仕組みについて
HTTPの仕組みについて
簡単なHTTPサーバの作成
簡単なHTTPサーバの作成
How tomakemodernwebservice d2
How tomakemodernwebservice d2
Lesson Html 01
Lesson Html 01
PIC RoR Heroku
PIC RoR Heroku
20160618_HTML5プロフェッショナル認定試験レベル1 技術解説セミナー in OSC北海道2016
20160618_HTML5プロフェッショナル認定試験レベル1 技術解説セミナー in OSC北海道2016
パンダの会 Html5概説
パンダの会 Html5概説
Basic HTML Introduction
Basic HTML Introduction
Semantic html が止まらない
Semantic html が止まらない
最新Webプロトコル傾向と対策
最新Webプロトコル傾向と対策
Howtomakewebservice days2
Howtomakewebservice days2
websocket-survery
websocket-survery
第43回HTML5とか勉強会 最新webプロトコル傾向と対策
第43回HTML5とか勉強会 最新webプロトコル傾向と対策
H T M L5 入門編
H T M L5 入門編
Webサーバ、HTML
Webサーバ、HTML
Más de Sota Sugiura
「データベース実践入門」から学ぶリレーショナルモデル
「データベース実践入門」から学ぶリレーショナルモデル
Sota Sugiura
TechCrunchTokyo Hackathon 2015
TechCrunchTokyo Hackathon 2015
Sota Sugiura
コミットメッセージの話
コミットメッセージの話
Sota Sugiura
今さら聞けないXSS
今さら聞けないXSS
Sota Sugiura
各ブラウザでの均等割り付け比較
各ブラウザでの均等割り付け比較
Sota Sugiura
GitHubにおける開発フローについてのお話
GitHubにおける開発フローについてのお話
Sota Sugiura
Promiseでコールバック地獄から解放された話
Promiseでコールバック地獄から解放された話
Sota Sugiura
Web Audio API 入門
Web Audio API 入門
Sota Sugiura
Más de Sota Sugiura
(8)
「データベース実践入門」から学ぶリレーショナルモデル
「データベース実践入門」から学ぶリレーショナルモデル
TechCrunchTokyo Hackathon 2015
TechCrunchTokyo Hackathon 2015
コミットメッセージの話
コミットメッセージの話
今さら聞けないXSS
今さら聞けないXSS
各ブラウザでの均等割り付け比較
各ブラウザでの均等割り付け比較
GitHubにおける開発フローについてのお話
GitHubにおける開発フローについてのお話
Promiseでコールバック地獄から解放された話
Promiseでコールバック地獄から解放された話
Web Audio API 入門
Web Audio API 入門
Último
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Último
(10)
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
HTTP入門
1.
HTTP入門 @sugiuras
2.
はじめに
3.
目標 • 「ブラウザでURLを打ち込み、ページが出る」まで に何が起きているのかを知る • HTTPの特徴を知る •
HTTPにできること/できないことを知る
4.
アジェンダ ✓ HTTP is ✓
HTTPの役割 ✓ Web通信の流れ ✓ HTTPの実態 ✓ HTTPにできる / できないこと ✓ まとめ
5.
HTTP is
6.
HTTP is • HTTP
= Hyper Text Transfer Protocol • HTTPとはWebブラウザとWebサーバの間でHTML などのコンテンツの送受信に用いられる通信プロト コルである。
7.
HTTPはWebと共に生まれた • HTTPは1989年3月に誕生した • 遠隔地で研究者同士の知識を共有するための仕組み としてWWWが考案された •
構成要素としてHTML, HTTP, URLが提案された
8.
WebのためのHTTP HTTPはHTMLを始めとしたWeb上のリソースを インターネットを通じて配信するために生まれた
9.
HTTPは方法 • HTTPはプロトコルの一種であり、インターネット 通信方法の一種 • プロトコルとは誰かと誰かがやりとりする時の取り 決め
10.
郵便で言うプロトコル • 送信者 • 郵便物に住所と名前を書いて、ポストに入れる •
受信者 • ポストを用意する • ポストに入った郵便物を受け取る
11.
あらかじめ通信方式を決めることで 届けたい物を届けたい場所に確実に届けることができる
12.
HTTPの役割
13.
HTTPはWebのための技術
14.
WebにおけるHTTPの役割を知る
15.
クライアントサーバモデル • Web通信にはクライアントとサーバが存在する • サーバはリソースを配信する •
クライアントはリソースを問い合わせる • クライアントが何もしない限り通信は発生しない
16.
サーバとクライアント ユーザー/ブラウザ (クライアント) サーバー (サーバー)
17.
サーバとクライアント (@cosme見たいなぁ) ユーザー/ブラウザ (クライアント) サーバー (サーバー)
18.
サーバとクライアント (配信準備できてるぞ∼) ユーザー/ブラウザ (クライアント) サーバー (サーバー) (@cosme見たいなぁ)
19.
リクエストとレスポンス • クライアントがサーバにリソースを要求する時に送 るメッセージがリクエストです • そのメッセージに対するサーバの返事がレスポンスです
20.
リクエストとレスポンス ユーザー/ブラウザ (クライアント) サーバー (サーバー) @cosmeページくれYO OKだYO リクエスト レスポンス
21.
リクエストとレスポンス ユーザー/ブラウザ (クライアント) サーバー (サーバー) @cosmeページくれYO OKだYO リクエスト レスポンス ↑ここでHTTPが 使われる
22.
HTTPの役目 • リクエストやレスポンスの書き方を定めたものが HTTPの実態
23.
HTTPはルール • 「このページください」というリクエストや「は い、このページだよ」というレスポンスの書き方が HTTPの正体 • HTTPの決まりに則って作られたHTTPメッセージ を用いてリクエスト/レスポンスを送る •
リクエスト/レスポンスを解釈するための共通言語
24.
いったんおさらい • Web通信にはクライアントとサーバが存在する • クライアントがサーバにリクエストを送る •
サーバがクライアントにレスポンスを返す • リクエスト/レスポンスはHTTPで定められたルール で作られたHTTPメッセージを使用する
25.
これだけ?
26.
これだけじゃない(´・ω・`)
27.
HTTP in TCP/IP HTTP TCP IP Network HTTP TCP IP Network ユーザ
サーバ TCP/IP
28.
ざっくり流れを追う
29.
Web通信の流れ
30.
ページが表示されるまでに 起こっていることを知る
31.
例:お化粧を探したいS君 S君
32.
例:お化粧を探したいS君 S君 @cosmeが見たいなぁ(・o・)
33.
Web通信の流れ ① クライアント(ユーザ)がURLを入力する ② そのURLが指すサーバがどこにあるのか調べる ③
調べたサーバと通信開始の信号を送り合う ④ リクエストを送る
34.
http://cosme.netが見たいなぁ URLを打ち込む おう、分かったで ① URLを打つ クライアント S君
35.
②送信先を調べる • URLは人間が分かりやすいように考えられたもの • 機械はURLからサーバの場所を知ることができない •
URLをもちいてIPアドレスをDNSサーバに問い合わ せる必要がある • ※厳密にはURL中に含まれるHost名
36.
cosme.netってどこにいるんや ②送信先を調べる DNSサーバ 210.129.109.21におるで クライアント よっしゃ、210.129.109.21と通信始めるで
37.
③通信を開始する • メッセージを送る前に通信の開始の合意を取る • これをすることによってメッセージが返ってこな かったり、途切れたりということがないようにする •
TCPがこの役割を担う
38.
210.129.109.21さんコンニチワ、通信していいですか ③通信を開始する cosme.net @210.129.109.21 コンニチワ、OKです。 こちらからも通信していいですか クライアント OKです
39.
210.129.109.21さんコンニチワ、通信していいですか ③通信を開始する クライアント OKです TCPによるスリーウェイハンドシェイク cosme.net @210.129.109.21 コンニチワ、OKです。 こちらからも通信していいですか
40.
④リクエストを送る • 通信経路をTCPで確保した後、リクエストを送る • リクエスト/レスポンスはHTTPメッセージを使用する
41.
http://cosme.netのページが見たい ④リクエストを送る クライアント cosme.net @210.129.109.21
42.
http://cosme.netのページが見たい ④リクエストを送る クライアント HTTPリクエスト cosme.net @210.129.109.21
43.
http://cosme.netのページが見たい ④リクエストを送る OK、ファイル送ったるわ クライアント HTTPリクエスト cosme.net @210.129.109.21
44.
http://cosme.netのページが見たい ④リクエストを送る OK、ファイル送ったるわ クライアント HTTPリクエスト HTTPレスポンス cosme.net @210.129.109.21
45.
やったー!!! 通信で受け取ったリソースを表示する おら、@cosmeやで めでたしめでたし クライアント S君
46.
Not only HTTP •
HTTPはリクエスト/レスポンスメッセージで使われ るプロトコル • 通信先を探したり、実際に通信を行うのは別のプロ トコルが担当している • Webの通信は様々な技術によって成り立っている
47.
HTTP in TCP/IP •
そんなWebのイケてるプロトコルたちをまとめて TCP/IPと呼んだりします • HTTPもTCP/IPの一部です • TCP/IPを制するものはWebを制する • [ 検索 ] [ マスタリングTCP/IP ]
48.
HTTPの実態
49.
HTTPメッセージ is テキスト •
HTTPメッセージの実態はテキスト • HTTPのルールに則って作られたテキストがHTTP メッセージ
50.
http://cosme.netのページが見たい OK、ファイル送ったるわ クライアント HTTPリクエスト HTTPレスポンス cosme.net @210.129.109.21
51.
GET / HTTP/1.1 Host:
sota1235.com HTTP/1.1 200 OK Date: Thu, 30 Jul 2015 02:47:55 GMT Server: Apache Last-Modified: Thu, 04 Dec 2014 06:50:12 GMT ETag: "700d9f-3776-5095e5f2e5100" Accept-Ranges: bytes Content-Length: 14198 Content-Type: text/html <!DOCTYPE html> … クライアント HTTPリクエスト HTTPレスポンス cosme.net @210.129.109.21
52.
HTTPリクエスト
53.
GET /top/login HTTP/1.1 User-Agent:
Telnet [ja] Host: sota1235.com name=sota&hobby=aiko
54.
GET /top/login HTTP/1.1 User-Agent:
Telnet [ja] Host: sota1235.com name=sota&hobby=aiko メソッド URI プロトコルバージョン
55.
GET /top/login HTTP/1.1 User-Agent:
Telnet [ja] Host: sota1235.com name=sota&hobby=aiko リクエストヘッダーフィールド メソッド URI プロトコルバージョン
56.
GET /top/login HTTP/1.1 User-Agent:
Telnet [ja] Host: sota1235.com name=sota&hobby=aiko リクエストヘッダーフィールド エンティティ メソッド URI プロトコルバージョン
57.
HTTPレスポンス
58.
HTTP/1.1 200 OK Date:
Tue, 10 Jul 2015 06:50:15 GMT Content-Length: 362 Content-Type: text:html <html> ………
59.
HTTP/1.1 200 OK Date:
Tue, 10 Jul 2015 06:50:15 GMT Content-Length: 362 Content-Type: text:html <html> ……… プロトコル バージョン ステータス コード ステータスコードの 説明
60.
HTTP/1.1 200 OK Date:
Tue, 10 Jul 2015 06:50:15 GMT Content-Length: 362 Content-Type: text:html <html> ……… プロトコル バージョン ステータス コード ステータスコードの 説明 レスポンスヘッダーフィールド
61.
HTTP/1.1 200 OK Date:
Tue, 10 Jul 2015 06:50:15 GMT Content-Length: 362 Content-Type: text:html <html> ……… プロトコル バージョン ステータス コード ステータスコードの 説明 レスポンスヘッダーフィールド ボディ
62.
いつ使うの? • はっきり言ってほとんど使う場面はないです • でもWebと関わる人は知っておくべき技術です •
以下のものは押さえときたい • メソッド • ステータスコード • 主要なヘッダー
63.
ヘッダーを意識する • 普段の開発で意識しとくとよいのがヘッダー • あなたの想像よりも多機能(きっと) •
様々なヘッダー設定することで通信を制御したり、ブラウザ に特定の振る舞いを命令することができる ✓ キャッシュ ✓ CSP ✓ リソース読み込み元の制限(Same Origin Policy) ✓ ファイル転送方式(gzipによる圧縮等)
64.
閑話休題
65.
20年以上もWebを支えてる HTTPスゲー!
66.
本当に(´・ω・`)?
67.
HTTPの特徴を見てみる
68.
HTTP通信の特徴 • HTTPは1回の通信で1つのリソースしか送らない
69.
GET / HTTP/1.1
@cosmeのトップページを取得
70.
GET / HTTP/1.1HTML上のリソース全てに
する • ページで使われるjs • ページで使われるcss • ページで使われる画像 も全部!
71.
GET / HTTP/1.1HTML上のリソース全てに
する • ページで使われるjs • ページで使われるcss • ページで使われる画像 も全部! 問題 使うリソースの数に比例してページ読み込みが 遅くなる
72.
HTTP通信の特徴 • HTTPは1回の通信で完結する
73.
クライアント サーバ HTTPリクエスト HTTPレスポンス Disconnect Three Way
Handshake
74.
クライアント サーバ
75.
クライアント サーバ 問題 同じ相手とやりとりしてるのにリクエストごとに毎回 TCP通信が発生する =
IP逆引きもTCP確立もやり直し
76.
HTTP通信の特徴 • HTTPは状態を保持しない • HTTPはステートレスなプロトコル •
サーバは以前の通信内容を覚えない
77.
クライアント サーバ ログインフォーム送信! ログインOK!マイページ送るね 1回目の通信
78.
クライアント サーバ プロフィール編集するぞー 未ログインだ、ログインページを送ろう! あれ?ついさっきログインしたばっかりなのに… 1回目の通信 2回目の通信
79.
クライアント サーバ プロフィール編集するぞー 未ログインだ、ログインページを送ろう! あれ?ついさっきログインしたばっかりなのに… 1回目の通信 2回目の通信 問題 状態を保持しないのでたとえ同じ相手でも 以前の通信内容をサーバが全く覚えていない
80.
HTTP通信の特徴 • クライアントからアクションを起こさない限り、 通信は発生しない
81.
クライアント サーバ 掲示板自動更新してよ!
82.
クライアント サーバ 掲示板自動更新してよ! 君がリクエスト送らないと レスポンス送れないから無理だよ! HTTPリクエスト
83.
クライアント サーバ 掲示板自動更新してよ! 君がリクエスト送らないと レスポンス送れないから無理だよ! HTTPリクエスト 問題 サーバは常に受け身で通信しなければならない ページの自動更新ができない
84.
昔はよかった • HTTPは当初、ドキュメントを配信するため作ら れた • でもTwitterとかログインできるWebサービスとか ワンページアプリケーションとかできるなんて誰 も想像してなかった
85.
諸行無常 • 時代が変わるにつれてHTTPだけじゃ対応できな くなってきた • そもそもHTTPが古すぎる •
今主流のHTTP/1.1が策定されたのは1997年 • とてもじゃないがHTTPだけではそれらのサービ スを実装できない
86.
諸行無常 • 時代が変わるにつれてHTTPだけじゃ対応できな くなってきた • そもそもHTTPが古すぎる •
今主流のHTTP/1.1が策定されたのは1997年 • とてもじゃないがHTTPだけではそれらのサービ スを実装できない
87.
でも大丈夫
88.
素敵な仲間たちがいるから
89.
HTTPにできる/できないこと
90.
HTTPにできること
91.
できること • TCP通信の省略 • (セキュアな通信)
92.
TCP通信の省略 • HTTP/1.1であればConnectionヘッダーで制御可能 • Connection:
Keep-Alive • 特に指定がなくてもほとんどの環境で自動的に適用 されます
93.
クライアント サーバこれが
94.
クライアント サーバこうなる
95.
セキュアな通信 • HTTP/1.1であればBASIC認証, DIGEST認証が使用可 能 •
HTTPの段階でセキュアに認証するために導入された • でも全然セキュアじゃないので使わないでください
96.
セキュアな通信 • BASIC認証 • パスワードが平文でHTTPメッセージに乗っかる •
DIGEST認証 • パスワードはメッセージに乗らないが認証トークンはメッ セージに乗っかる いずれも盗聴されたら終わり 認証機構をHTTPのみで実装するのはやめましょう
97.
HTTPにできないこと
98.
できないこと • 状態保持(ステートフルな通信) • セキュアな通信 •
サーバプッシュ • 通信の並列 / 多重化
99.
状態保持 • HTTPはステートレスなプロトコル! • HTTPヘッダー内でCookieを使用することで実現可能
100.
Cookie??
101.
クライアント サーバ ログインフォーム送信! ログインOK!マイページ送るね 1回目の通信
102.
クライアント サーバ ログインフォーム送信! ログインOK!マイページ送るね 1回目の通信 あ、あと次回のためにCookieも発行しておくね! ログイン済みCookie
103.
クライアント サーバ ログインフォーム送信! ログインOK!マイページ送るね 1回目の通信 あ、あと次回のためにCookieも発行しておくね! ログイン済みCookie 2回目以降の通信はこいつを 含めてやりとりすることで ログイン済みかどうか判断
104.
Cookie • ログイン情報やECのカート情報をCookieに入れてお き、次回以降は常にCookieも含めて通信する • 状態保持ができ、ステートフルな通信を実現できる •
Cookieには有効期限をつけたりJSから読み込めなく したりすることもできる
105.
セキュアな通信 • HTTPS通信で実現できる • HTTPS
= HTTP + SSL / TLS • 複数プロトコルを組み合わせ、暗号化通信を実現する • BASIC, DIGESTと違い盗聴されても大丈夫! • ただし導入にはコストがかります( ꒪⌓꒪)
106.
サーバプッシュ • JavaScriptのAjaxによって実現される • 手法がいくつか存在する •
Polling / Comet(Long Polling) / WebSocket • それぞれの長所 / 短所を知り、使い分けるのが大事 • 選択肢はComet or WebSocket
107.
通信の並列/多重化 • HTTP/1.1までで実現する方法はないです(´・ω・`) • のでフロントをデザインする際はリソースの読み込 み順や通信量を意識する必要がある •
ただしモダンなブラウザでは通信の並列化を行って いる
108.
通信の並列/多重化
109.
通信の並列/多重化 並列でリクエストしてる
110.
通信の並列/多重化 • だいたいのブラウザでは6個まで処理できる • 7つ目のリクエストは6個のうちどれかが完了するま でWaiting状態になる •
ページが重い時はHTTPリクエストの所作を見るのを おすすめします
111.
まとめ
112.
Web通信で大事なこと • Web通信はクライアント/サーバがリクエスト/レスポ ンスをやりとりすることで実現される • リクエスト/レスポンスにHTTPが使用される •
クライアントからアクションを起こさない限り通信 は発生しない
113.
HTTPで大事なこと • HTTPはステートレスなプロトコル • HTTPメッセージの実態はテキスト •
HTTPの役割を理解し、できる/できないことを知る
114.
おまけ
115.
HTTP/2.0 • 最新バージョンであるHTTP/2.0の最終ドラフトが 2015年2月17日に承認されました! • めでたい!
116.
HTTP/2.0 • 今までできなかったことができるようになるらしい • サーバプッシュ •
ストリームによる通信の多重化 • ボディのバイナリ化による高速化 • リソース読み込み優先順位付け
117.
HTTP/2.0は次回ヾ(*´∀`*)ノ
118.
以上、解散!
Descargar ahora