Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Webアプリケーションとは何か
Search
Kazunori-Kimura
May 31, 2017
Technology
0
200
Webアプリケーションとは何か
2017-06-03 Java勉強会向け資料
Kazunori-Kimura
May 31, 2017
Tweet
Share
More Decks by Kazunori-Kimura
See All by Kazunori-Kimura
path-parser
kazunorikimura
0
390
objectのcloneを行う/How to clone of the object in js
kazunorikimura
0
410
クライアントサイドで大きなデータを扱うときのお話/Web Worker & IndexedDB
kazunorikimura
0
680
How freelance programmer works
kazunorikimura
0
140
moment.js
kazunorikimura
0
110
sequelize.pdf
kazunorikimura
0
600
Toward the world of "ready player one"
kazunorikimura
0
110
npmの便利なパッケージ: forever, winser
kazunorikimura
0
1k
npmの便利なパッケージ: Jest
kazunorikimura
0
150
Other Decks in Technology
See All in Technology
Embedded SREの終わりを設計する 「なんとなく」から計画的な自立支援へ
sansantech
PRO
3
2.1k
Webhook best practices for rock solid and resilient deployments
glaforge
1
260
SREが向き合う大規模リアーキテクチャ 〜信頼性とアジリティの両立〜
zepprix
0
390
SREじゃなかった僕らがenablingを通じて「SRE実践者」になるまでのリアル / SRE Kaigi 2026
aeonpeople
6
2.1k
M&A 後の統合をどう進めるか ─ ナレッジワーク × Poetics が実践した組織とシステムの融合
kworkdev
PRO
1
390
IaaS/SaaS管理における SREの実践 - SRE Kaigi 2026
bbqallstars
4
1.6k
OCI Database Management サービス詳細
oracle4engineer
PRO
1
7.3k
Kiro IDEのドキュメントを全部読んだので地味だけどちょっと嬉しい機能を紹介する
khmoryz
0
150
Azure Durable Functions で作った NL2SQL Agent の精度向上に取り組んだ話/jat08
thara0402
0
140
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
10
73k
What happened to RubyGems and what can we learn?
mikemcquaid
0
240
Mosaic AI Gatewayでコーディングエージェントを配るための運用Tips / JEDAI 2026 新春 Meetup! AIコーディング特集
genda
0
150
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.4k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
270
Building Applications with DynamoDB
mza
96
6.9k
Practical Orchestrator
shlominoach
191
11k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.3k
Thoughts on Productivity
jonyablonski
74
5k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.7k
First, design no harm
axbom
PRO
2
1.1k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
140
Bash Introduction
62gerente
615
210k
Being A Developer After 40
akosma
91
590k
Designing for Performance
lara
610
70k
Transcript
/40 8FCΞϓϦέʔγϣϯ ͱԿ͔ʁ 2017/06/03 ⽊村 憲規 1
/40 ͡Ίʹ Webアプリケーションの開発をする前に 裏側の仕組みについて把握しましょう 2
/40 ΫϥΠΞϯταʔόʔϞσϧ Webブラウザ Webサーバー 3
/40 ΫϥΠΞϯταʔόʔϞσϧ Webブラウザ Webサーバー 1. リクエスト 4
/40 ΫϥΠΞϯταʔόʔϞσϧ Webブラウザ Webサーバー 1. リクエスト 2. レスポンス 5
/40 63-(Uniform Resource Locator) リソースの場所を表す リソース:HTMLや画像ファイルなど 6
/40 63-(Uniform Resource Locator) https://www.example.com/index.html プロトコル ホスト名 パス 7
/40 )551ͱ )5514 HTTP (HyperText Transfer Protocol) WebブラウザとWebサーバの間でHTMLなどの コンテンツの送受信に⽤いられる通信プロトコ ル
8
/40 )551ͱ )5514 HTTPS (HTTP over SSL/TLS) メッセージを平⽂のままで送受信する標準の HTTPと異なり、SSL/TLSプロトコルを⽤いて、 サーバの認証・通信内容の暗号化・改竄検出な
どを⾏う。 9
/40 )551ϦΫΤετ Webブラウザ Webサーバー 1. リクエスト 2. レスポンス 10
/40 )551ϦΫΤετ • HTTPリクエストの構成要素 • リクエストライン • ヘッダ • ボディ
11
/40 %&.0 • telnet で example.com に接続してみる 12
/40 %&.0 ղઆ リクエスト レスポンス 13
/40 %&.0 ղઆ リクエストライン ヘッダー GETメソッドではBody不要 空⾏ 14
/40 %&.0 ղઆ メソッド パス バージョン 15
/40 ϝιου GET POST PUT DELETE HEAD OPTION TRACE CONNECT
16
/40 ϝιου GET POST PUT DELETE HEAD OPTION TRACE CONNECT
17
/40 ϝιου GET POST PUT DELETE HEAD OPTION TRACE CONNECT
URLで⽰されたリソースを サーバーから取得する クライアントからサーバー へデータを投稿する 18
/40 )551Ϩεϙϯε Webブラウザ Webサーバー 1. リクエスト 2. レスポンス 19
/40 )551Ϩεϙϯε • HTTPレスポンスの構成要素 • レスポンスライン • ヘッダ • ボディ
20
/40 %&.0 ղઆ レスポンスライン ヘッダ 空⾏ ボディ 21
/40 εςʔλείʔυ ステータスコード 内容 100番台 情報 200番台 成功 300番台 リダイレクションメッセージ
400番台 クライアントエラー 500番台 サーバーエラー HTTP レスポンスコード - HTTP | MDN https://developer.mozilla.org/ja/docs/Web/HTTP/Status 22
/40 8FCϒϥβͷׂ HTTPレスポンスはテキストであり、 Webブラウザが適切に解釈し表⽰し ている 23
/40 8FCϖʔδΛߏ͢Δཁૉ • HTML • CSS • JavaScript 24
/40 )5.- • HyperText Markup Language • タグによって⽂章の意味付けや構造を定義する • タグに囲まれた⽂章を要素と呼ぶ
25
/40 $44 • Cascading Style Sheet • HTMLの要素に対して、フォントサイズや⾊、 背景⾊といった装飾をおこなう 26
/40 +BWB4DSJQU • Webブラウザが提供する DOM (Document Object Model) API を介して
HTML要素の操作 を⾏う • AjaxによりWebサーバーと⾮同期通信を⾏う 27
/40 8FCΞϓϦέʔγϣϯͱʁ Webブラウザ Webサーバー 28
/40 8FCΞϓϦέʔγϣϯͱʁ Webブラウザ Webサーバー 操作 29
/40 8FCΞϓϦέʔγϣϯͱʁ Webブラウザ Webサーバー 操作 リクエスト 30
/40 8FCΞϓϦέʔγϣϯͱʁ Webブラウザ Webサーバー レスポンス の⽣成 操作 リクエスト 31
/40 8FCΞϓϦέʔγϣϯͱʁ Webブラウザ Webサーバー レスポンス の⽣成 操作 リクエスト レスポンス 32
/40 8FCΞϓϦέʔγϣϯͱʁ Webブラウザ Webサーバー HTML CSS JavaScript レスポンス の⽣成 操作
リクエスト レスポンス 33
/40 8FCΞϓϦέʔγϣϯͱʁ Webブラウザ Webサーバー HTML CSS JavaScript レスポンス の⽣成 操作
表⽰ リクエスト レスポンス 34
/40 8FCΞϓϦέʔγϣϯͷఆٛ クライアントからのリクエストごと にサーバー側の処理で状況に合わせ たWebページが⽣成されることによ り、何かしらの機能が提供されるア プリケーション 35
/40 8FCΞϓϦέʔγϣϯ։ൃͷରൣғ Webブラウザ Webサーバー HTML CSS JavaScript レスポンス の⽣成 操作
表⽰ リクエスト レスポンス 36
/40 <ࢀߟ>ϒϥβͷ։ൃ ऀπʔϧʹ͍ͭͯ 37
/40 ΓͱΓͷதΛݟΔ ブラウザに組み込まれている「開発者ツール」 でHTTPのやりとりの中⾝を確認できます。 ブラウザによって起動⽅ 法や使い⽅は異なります 38
/40 ΓͱΓͷதΛݟΔ 1. ブラウザを起動し http://www.example.com を表⽰する 2. 開発者ツールを起動する (Google Chromeの場合は右クリックà検証)
3. ブラウザでスーパーリロード (Shift + F5) を ⾏う 39
/40 ΓͱΓͷதΛݟΔ リクエスト レスポンス 40