Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Sota Sugiura
PDF, PPTX
8,387 views
HTTP入門
About HTTP 社内向け勉強会のスライドです。
Technology
◦
Read more
22
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 118
2
/ 118
3
/ 118
4
/ 118
5
/ 118
6
/ 118
7
/ 118
Most read
8
/ 118
9
/ 118
10
/ 118
11
/ 118
12
/ 118
13
/ 118
14
/ 118
15
/ 118
16
/ 118
17
/ 118
Most read
18
/ 118
19
/ 118
Most read
20
/ 118
21
/ 118
22
/ 118
23
/ 118
24
/ 118
25
/ 118
26
/ 118
27
/ 118
28
/ 118
29
/ 118
30
/ 118
31
/ 118
32
/ 118
33
/ 118
34
/ 118
35
/ 118
36
/ 118
37
/ 118
38
/ 118
39
/ 118
40
/ 118
41
/ 118
42
/ 118
43
/ 118
44
/ 118
45
/ 118
46
/ 118
47
/ 118
48
/ 118
49
/ 118
50
/ 118
51
/ 118
52
/ 118
53
/ 118
54
/ 118
55
/ 118
56
/ 118
57
/ 118
58
/ 118
59
/ 118
60
/ 118
61
/ 118
62
/ 118
63
/ 118
64
/ 118
65
/ 118
66
/ 118
67
/ 118
68
/ 118
69
/ 118
70
/ 118
71
/ 118
72
/ 118
73
/ 118
74
/ 118
75
/ 118
76
/ 118
77
/ 118
78
/ 118
79
/ 118
80
/ 118
81
/ 118
82
/ 118
83
/ 118
84
/ 118
85
/ 118
86
/ 118
87
/ 118
88
/ 118
89
/ 118
90
/ 118
91
/ 118
92
/ 118
93
/ 118
94
/ 118
95
/ 118
96
/ 118
97
/ 118
98
/ 118
99
/ 118
100
/ 118
101
/ 118
102
/ 118
103
/ 118
104
/ 118
105
/ 118
106
/ 118
107
/ 118
108
/ 118
109
/ 118
110
/ 118
111
/ 118
112
/ 118
113
/ 118
114
/ 118
115
/ 118
116
/ 118
117
/ 118
118
/ 118
More Related Content
PDF
何となく勉強した気分になれるパーサ入門
by
masayoshi takahashi
PDF
WebSocket / WebRTCの技術紹介
by
Yasuhiro Mawarimichi
PDF
TLS, HTTP/2演習
by
shigeki_ohtsu
PPTX
PHP と SAPI と ZendEngine3 と
by
do_aki
PPTX
本当は恐ろしい分散システムの話
by
Kumazaki Hiroki
PDF
AbemaTVの動画配信を支えるサーバーサイドシステム
by
yuichiro nakazawa
PDF
インテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法 - by イゴール・スコチンスキー - Igor Skochinsky
by
CODE BLUE
PPTX
KeycloakでAPI認可に入門する
by
Hitachi, Ltd. OSS Solution Center.
何となく勉強した気分になれるパーサ入門
by
masayoshi takahashi
WebSocket / WebRTCの技術紹介
by
Yasuhiro Mawarimichi
TLS, HTTP/2演習
by
shigeki_ohtsu
PHP と SAPI と ZendEngine3 と
by
do_aki
本当は恐ろしい分散システムの話
by
Kumazaki Hiroki
AbemaTVの動画配信を支えるサーバーサイドシステム
by
yuichiro nakazawa
インテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法 - by イゴール・スコチンスキー - Igor Skochinsky
by
CODE BLUE
KeycloakでAPI認可に入門する
by
Hitachi, Ltd. OSS Solution Center.
What's hot
PPTX
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
by
NTT DATA Technology & Innovation
PDF
Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...
by
NTT DATA Technology & Innovation
PDF
Kubernetesによる機械学習基盤への挑戦
by
Preferred Networks
PDF
初心者向けCTFのWeb分野の強化法
by
kazkiti
PDF
サーバPUSHざっくりまとめ
by
Yasuhiro Mawarimichi
PDF
オンラインゲームの仕組みと工夫
by
Yuta Imai
PDF
暗号技術の実装と数学
by
MITSUNARI Shigeo
PDF
Scapyで作る・解析するパケット
by
Takaaki Hoyo
PDF
Rust、何もわからない...#7 VecDeque再訪
by
Yusuke Mori
PDF
ChatGPTをシステムに組み込むためのプロンプト技法 #chatgptjp
by
K Kinzal
PDF
Hybrid Public Key Encryption (HPKE)
by
Jun Kurihara
PDF
GitHub Codespaces と Azure でつくる、エンタープライズレベルの開発環境
by
Kazumi OHIRA
PDF
仮想化環境におけるパケットフォワーディング
by
Takuya ASADA
PPTX
コンテナネットワーキング(CNI)最前線
by
Motonori Shindo
PDF
全文検索でRedmineをさらに活用!
by
Kouhei Sutou
PDF
BuildKitの概要と最近の機能
by
Kohei Tokunaga
PDF
オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022
by
GREE VR Studio Lab
PPTX
Redisの特徴と活用方法について
by
Yuji Otani
PDF
HTTP/2 入門
by
Yahoo!デベロッパーネットワーク
PDF
Bitcoinを技術的に理解する
by
Kenji Urushima
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
by
NTT DATA Technology & Innovation
Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...
by
NTT DATA Technology & Innovation
Kubernetesによる機械学習基盤への挑戦
by
Preferred Networks
初心者向けCTFのWeb分野の強化法
by
kazkiti
サーバPUSHざっくりまとめ
by
Yasuhiro Mawarimichi
オンラインゲームの仕組みと工夫
by
Yuta Imai
暗号技術の実装と数学
by
MITSUNARI Shigeo
Scapyで作る・解析するパケット
by
Takaaki Hoyo
Rust、何もわからない...#7 VecDeque再訪
by
Yusuke Mori
ChatGPTをシステムに組み込むためのプロンプト技法 #chatgptjp
by
K Kinzal
Hybrid Public Key Encryption (HPKE)
by
Jun Kurihara
GitHub Codespaces と Azure でつくる、エンタープライズレベルの開発環境
by
Kazumi OHIRA
仮想化環境におけるパケットフォワーディング
by
Takuya ASADA
コンテナネットワーキング(CNI)最前線
by
Motonori Shindo
全文検索でRedmineをさらに活用!
by
Kouhei Sutou
BuildKitの概要と最近の機能
by
Kohei Tokunaga
オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022
by
GREE VR Studio Lab
Redisの特徴と活用方法について
by
Yuji Otani
HTTP/2 入門
by
Yahoo!デベロッパーネットワーク
Bitcoinを技術的に理解する
by
Kenji Urushima
Viewers also liked
PPTX
ゼロから始めるBlob
by
Kazunori Hamamoto
PPTX
今から始めるDocument db
by
Kazunori Hamamoto
PDF
ゲームから学ぶデザイン思考術
by
Yasuhisa Hasegawa
PDF
Web API入門
by
Masao Takaku
PDF
RESTful API 入門
by
Keisuke Nishitani
PDF
デザインのためのデザイン
by
Masayuki Uetani
ゼロから始めるBlob
by
Kazunori Hamamoto
今から始めるDocument db
by
Kazunori Hamamoto
ゲームから学ぶデザイン思考術
by
Yasuhisa Hasegawa
Web API入門
by
Masao Takaku
RESTful API 入門
by
Keisuke Nishitani
デザインのためのデザイン
by
Masayuki Uetani
Similar to HTTP入門
PDF
HTTP入門
by
Sho A
PDF
HTTP2入門
by
Sota Sugiura
PDF
HTTPを理解する
by
IIJ
PDF
HTTPのお話
by
nasa9084
PDF
REST APIに入門する。
by
Kazushi Kawamura
PDF
Webページが表示されるまで
by
Masataka Suzuki
PPTX
About http
by
RyosukeIzawa
PPTX
[BurpSuiteJapan]HTTP基礎入門
by
Burp Suite Japan User Group
PPTX
ネットワーク第3回目
by
Yukiko Kato
PPTX
Httpを振り返ってみる
by
galluda
PPTX
HTML はネットワークをいかに変えてきたか
by
彰 村地
PDF
Http
by
Net Kanayan
PPTX
HTTPの仕組みについて
by
iPride Co., Ltd.
PDF
Learn Http Requests & Responses for Test Engineer
by
Takashi Moriyama
PPTX
アドレスバーにURL打ち込んでからページが表示されるまでに 何が起こっているか
by
彰 村地
PDF
Beginning Java EE 6 勉強会(7) #bje_study
by
ikeyat
PDF
Webとは何か
by
teracchi
PDF
HTTP 2.0のヘッダ圧縮(HPACK)
by
Jun Fujisawa
PDF
Janogia20120921 yoshinotakeshi
by
Keisuke Ishibashi
PDF
Web基礎
by
stx_kata
HTTP入門
by
Sho A
HTTP2入門
by
Sota Sugiura
HTTPを理解する
by
IIJ
HTTPのお話
by
nasa9084
REST APIに入門する。
by
Kazushi Kawamura
Webページが表示されるまで
by
Masataka Suzuki
About http
by
RyosukeIzawa
[BurpSuiteJapan]HTTP基礎入門
by
Burp Suite Japan User Group
ネットワーク第3回目
by
Yukiko Kato
Httpを振り返ってみる
by
galluda
HTML はネットワークをいかに変えてきたか
by
彰 村地
Http
by
Net Kanayan
HTTPの仕組みについて
by
iPride Co., Ltd.
Learn Http Requests & Responses for Test Engineer
by
Takashi Moriyama
アドレスバーにURL打ち込んでからページが表示されるまでに 何が起こっているか
by
彰 村地
Beginning Java EE 6 勉強会(7) #bje_study
by
ikeyat
Webとは何か
by
teracchi
HTTP 2.0のヘッダ圧縮(HPACK)
by
Jun Fujisawa
Janogia20120921 yoshinotakeshi
by
Keisuke Ishibashi
Web基礎
by
stx_kata
More from Sota Sugiura
PDF
「データベース実践入門」から学ぶリレーショナルモデル
by
Sota Sugiura
PDF
TechCrunchTokyo Hackathon 2015
by
Sota Sugiura
PDF
コミットメッセージの話
by
Sota Sugiura
PDF
今さら聞けないXSS
by
Sota Sugiura
PDF
各ブラウザでの均等割り付け比較
by
Sota Sugiura
PDF
GitHubにおける開発フローについてのお話
by
Sota Sugiura
PDF
Promiseでコールバック地獄から解放された話
by
Sota Sugiura
PDF
Web Audio API 入門
by
Sota Sugiura
「データベース実践入門」から学ぶリレーショナルモデル
by
Sota Sugiura
TechCrunchTokyo Hackathon 2015
by
Sota Sugiura
コミットメッセージの話
by
Sota Sugiura
今さら聞けないXSS
by
Sota Sugiura
各ブラウザでの均等割り付け比較
by
Sota Sugiura
GitHubにおける開発フローについてのお話
by
Sota Sugiura
Promiseでコールバック地獄から解放された話
by
Sota Sugiura
Web Audio API 入門
by
Sota Sugiura
Recently uploaded
PDF
Drupal Recipes 解説 .
by
iPride Co., Ltd.
PDF
100年後の知財業界-生成AIスライドアドリブプレゼン イーパテントYouTube配信
by
e-Patent Co., Ltd.
PDF
2025→2026宙畑ゆく年くる年レポート_100社を超える企業アンケート総まとめ!!_企業まとめ_1229_3版
by
sorabatake
PDF
Reiwa 7 IT Strategist Afternoon I Question-1 3C Analysis
by
akipii ogaoga
PDF
第21回 Gen AI 勉強会「NotebookLMで60ページ超の スライドを作成してみた」
by
嶋 是一 (Yoshikazu SHIMA)
PDF
さくらインターネットの今 法林リージョン:さくらのAIとか GPUとかイベントとか 〜2026年もバク進します!〜
by
法林浩之
PDF
Starlink Direct-to-Cell (D2C) 技術の概要と将来の展望
by
CRI Japan, Inc.
PDF
Reiwa 7 IT Strategist Afternoon I Question-1 Ansoff's Growth Vector
by
akipii ogaoga
PPTX
ddevについて .
by
iPride Co., Ltd.
Drupal Recipes 解説 .
by
iPride Co., Ltd.
100年後の知財業界-生成AIスライドアドリブプレゼン イーパテントYouTube配信
by
e-Patent Co., Ltd.
2025→2026宙畑ゆく年くる年レポート_100社を超える企業アンケート総まとめ!!_企業まとめ_1229_3版
by
sorabatake
Reiwa 7 IT Strategist Afternoon I Question-1 3C Analysis
by
akipii ogaoga
第21回 Gen AI 勉強会「NotebookLMで60ページ超の スライドを作成してみた」
by
嶋 是一 (Yoshikazu SHIMA)
さくらインターネットの今 法林リージョン:さくらのAIとか GPUとかイベントとか 〜2026年もバク進します!〜
by
法林浩之
Starlink Direct-to-Cell (D2C) 技術の概要と将来の展望
by
CRI Japan, Inc.
Reiwa 7 IT Strategist Afternoon I Question-1 Ansoff's Growth Vector
by
akipii ogaoga
ddevについて .
by
iPride Co., Ltd.
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.
以上、解散!
Download