SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
年末年始勉強会1回⽬
鈴⽊貴⼤(たかぴー)
本⽇の流れ 2
• 進め⽅
• URL(URI)
• HTTP
• REST
• Webアプリとは
• Webアプリの構造
本⽇の流れ 3
• 進め⽅
• URL(URI)
• HTTP
• REST
• Webアプリとは
• Webアプリの構造
進め⽅|各回について 4
• スライドで(頑張って)説明しつつ,実際に動かしてもらう
• スライドが⾯倒すぎたら変えるかも。。。
• 極⼒頑張ります︕
• 基本的には仮想環境上で作成
• そこらへんも知りたければ話します
• フォルダ構成については検討中
→現状ネストし過ぎ
進め⽅|スライドや発⾔について 5
• スライドの⾊使いや強調などは(極⼒)以下に従う
• ⻘⽂字 ︓覚えた⽅が良いと思われる単語
• 太⽂字 ︓強調①
• オレンジ⽂字︓強調②(①でクドい時に使⽤)
• 下線 ︓違いに注意︕
• ⼝頭での説明は(やっぱり極⼒)以下を意識
• 知っておいた⽅が良さそうな単語は積極的に利⽤
→⽌めてくれて構わないです
本⽇の流れ 6
• 進め⽅
• URL(URI)
• HTTP
• REST
• Webアプリとは
• Webアプリの構造
URL|よく⾒るURLの構造 7
• http://example.com/domains
• <スキーム名>://<ホスト名>/<パス> と分解できる
• 実際にはホスト名の後に『:80』が省略されている
• プロトコルに対応するポート番号は省略できる︕
• HTTPは80番, HTTPSは443番(ウェルノウンポート)
• やってみようのコーナー
• 上のURLをブラウザで⼊⼒してみよう
• ポート番号を明⽰して⼊⼒してみよう
• プロトコルをHTTPSにして試してみよう
URL|スキーム名について 8
• スキーム名では,通信プロトコルを指定する
• http, https, ftpなど
• ftpを指定することあるんだろうか。。。︖
URL|ホスト名について 9
• 通信をしたいサーバーの名前のこと
• 『https://www.example.com』だったら,www.example.com
という名前のサーバーと通信をしたい
• ⽂脈によって指しているものが違うので注意
1. あるネットワーク上の特定の1つの計算機の場合
2. インターネット上の特定の1つの計算機の場合
• 同じものをドメイン名と呼ぶこともある
• IPアドレスに対応付けた⽂字列=ドメイン名,
特定の計算機の名前=ホスト名,
くらいの気持ちで,同じものを指している(と思っている)
URL|ポートについて 10
• 計算機の外部と通信を⾏うための港みたいなもの
• XXXX番の港ではA社向けの商品,
YYYY番の港ではB社向けの商品〜,みたいなイメージ
• ポート番号を指定してサーバーを起動する
• 提供側の所望のアプリのポート番号は知らなければならない
• A社向けの製品がB社の港に来たら困るよ〜
• HTTPは80番,SSHは22番,HTTPSは443番など⼤体決まってる
• SSHはセキュリティの都合で違うポート番号の場合もある
本⽇の流れ 11
• 進め⽅
• URL(URI)
• HTTP
• REST
• Webアプリとは
• Webアプリの構造
HTTP|HTTPとは 12
• Hyper Text Transfer Protocol の略
• Webを介してデータのやり取りをするためのプロトコル
• クライアントがサーバーに対してリクエストを投げ,
サーバーはクライアントに対してレスポンスを返す
リクエスト
レスポンス
クライアント サーバー(鯖)
HTTP|リクエストの中⾝ 13
• 以下の3要素から構成される
• リクエストライン︓リソースのパスとそれに対するメソッド,
HTTPのバージョンが記載
• ヘッダー ︓付加情報を『フィールド名︓値』の組が
記述
ex) OS情報,cookie情報
• ボディ ︓パラメータが記述
リクエストライン
ヘッダー
ボディ
HTTP|レスポンスの中⾝ 14
• 以下の3要素から構成される(構成要素はリクエストと同じ)
• ステータスライン︓HTTPのバージョン,ステータスコード,
テキストフレーズが記載
ex) (status code, text phrase)
= (200, OK), (404, Not Found)
• ヘッダー ︓リクエストの場合と同様
• ボディ ︓リソースの内容を記述
ステータスライン
ヘッダー
ボディ
HTTP|やり取りをみてみよう① 15
• Chromeで簡単にクライアントとサーバーのやり取りを確認可能
1. どのページでもいいので右クリック
2. 「検証」をクリック
3. 「Network」をクリック
4. ブラウザで『http://www.example.com』と⼊⼒しエンター
5. Nameの「www.example.com」をクリック
6. ぽちぽちしてみましょう
HTTP|やり取りをみてみよう② 16
• curlコマンドでもう少し⽣な状態のやり取りをみてみよう
1. shellで「curl --verbose http://www.example.com」と⼊⼒
2. 「>」が先頭にある⾏はリクエスト,
「<」が先頭にある⾏はレスポンスなので確認しよう
3. URL(URI)を適当に変更してステータスコードと
テキストフレーズの変化を確認しよう
本⽇の流れ 17
• 進め⽅
• URL(URI)
• HTTP
• REST
• Webアプリとは
• Webアプリの構造
REST|RESTとは 18
• Representational State Transferの略
• WebAPIの設計モデルのこと
• この規則に基づいて作成していこう︕的なもの
• RESTの原則に則って作成されたAPIをRESTful APIと⾔う
• 原則全てを満たしてなくてもRESTfulであると呼んだりする
• 今どきのAPIは⼤体RESTful(だと思っている)
REST|RESTの設計原則 19
• URL(URI)は名詞のみで構成(操作を含めない)
✘ ︓http://dummyhostname/getUsers
◯ ︓http://dummyhostname/users
• リソースに対する操作は(リクエスト)メソッドを介して⾏う
• GETやPOSTなど
• ステートレス
• セッションの状態を保持しないということ
• リンクを⽤いた状態遷移
本⽇の流れ 20
• 進め⽅
• URL(URI)
• HTTP
• Rest
• Webアプリとは
• Webアプリの構造
Webアプリとは 21
• 動的にHTMLを⽣成して返す機構を備えたWebサイトのこと
• ユーザーごとに違ったマイページを表⽰する,
ログイン前とログイン後で表⽰内容を変える,など
• 動的に⽣成されたページは動的ページという(らしい)
• 静的(いつ誰に対しても同じ)なページは静的ページという
• 全てが全て動的である必要はない
本⽇の流れ 22
• 進め⽅
• URL(URI)
• HTTP
• REST
• Webアプリとは
• Webアプリの構造
Webアプリの構造|3要素 23
• Webアプリは以下の3要素から構成される
• Webサーバー ︓クライアントからのリクエストを処理する
• APサーバー ︓動的ページの⽣成をする
• DBサーバー ︓データの書き込み,取り出しを⾏う
Webサーバー APサーバー DBサーバー
Webアプリの構造|3要素の連携 24
• 静的なもののみを返せば済む場合
Webサーバー APサーバー DBサーバー
リクエスト
レスポンス
Webアプリの構造|3要素の連携 25
• 動的なものを返す必要がある場合
Webサーバー
リクエスト
レスポンス
APサーバー DBサーバー
作成要求 データ要求
データ送信ページ送信
本⽇の流れ 26
• 進め⽅
• URL(URI)
• HTTP
• REST
• Webアプリとは
• Webアプリの構造
おしまい

Mais conteúdo relacionado

Mais procurados

Web技術勉強会9回目(Slideshare用)
Web技術勉強会9回目(Slideshare用)Web技術勉強会9回目(Slideshare用)
Web技術勉強会9回目(Slideshare用)龍一 田中
 
Windows MobileとWeb Api
Windows MobileとWeb ApiWindows MobileとWeb Api
Windows MobileとWeb ApiKenji Wada
 
中小企業E化最新趨勢與效益分析
中小企業E化最新趨勢與效益分析中小企業E化最新趨勢與效益分析
中小企業E化最新趨勢與效益分析Alex Lee
 
Modern Front End Evolution
Modern Front End EvolutionModern Front End Evolution
Modern Front End EvolutionKUAN-CHING CHOU
 
Sd Loader Seasar Con2009 White
Sd Loader Seasar Con2009 WhiteSd Loader Seasar Con2009 White
Sd Loader Seasar Con2009 WhiteAkio Katayama
 
章文嵩:使用LVS集群架设高可扩展的网络服务.pdf
章文嵩:使用LVS集群架设高可扩展的网络服务.pdf章文嵩:使用LVS集群架设高可扩展的网络服务.pdf
章文嵩:使用LVS集群架设高可扩展的网络服务.pdfXMourinho
 
Web技術勉強会12回目
Web技術勉強会12回目Web技術勉強会12回目
Web技術勉強会12回目龍一 田中
 
Sentokyo Kansai(20070126)
Sentokyo Kansai(20070126)Sentokyo Kansai(20070126)
Sentokyo Kansai(20070126)真 岡本
 
Web Refactoring
Web RefactoringWeb Refactoring
Web RefactoringJace Ju
 

Mais procurados (20)

Web2.0 and Ruby
Web2.0 and RubyWeb2.0 and Ruby
Web2.0 and Ruby
 
Web技術勉強会9回目(Slideshare用)
Web技術勉強会9回目(Slideshare用)Web技術勉強会9回目(Slideshare用)
Web技術勉強会9回目(Slideshare用)
 
sc2009white_T2
sc2009white_T2sc2009white_T2
sc2009white_T2
 
About OSGeo.JP
About OSGeo.JPAbout OSGeo.JP
About OSGeo.JP
 
Windows MobileとWeb Api
Windows MobileとWeb ApiWindows MobileとWeb Api
Windows MobileとWeb Api
 
中小企業E化最新趨勢與效益分析
中小企業E化最新趨勢與效益分析中小企業E化最新趨勢與效益分析
中小企業E化最新趨勢與效益分析
 
Modern Front End Evolution
Modern Front End EvolutionModern Front End Evolution
Modern Front End Evolution
 
WebDAV as Web API
WebDAV as Web APIWebDAV as Web API
WebDAV as Web API
 
plan
planplan
plan
 
What is PHP Frameworks?
What is PHP Frameworks?What is PHP Frameworks?
What is PHP Frameworks?
 
T2@java-ja#toyama
T2@java-ja#toyamaT2@java-ja#toyama
T2@java-ja#toyama
 
Sd Loader Seasar Con2009 White
Sd Loader Seasar Con2009 WhiteSd Loader Seasar Con2009 White
Sd Loader Seasar Con2009 White
 
RDF and FOAF
RDF and FOAFRDF and FOAF
RDF and FOAF
 
章文嵩:使用LVS集群架设高可扩展的网络服务.pdf
章文嵩:使用LVS集群架设高可扩展的网络服务.pdf章文嵩:使用LVS集群架设高可扩展的网络服务.pdf
章文嵩:使用LVS集群架设高可扩展的网络服务.pdf
 
91 Ch
91 Ch91 Ch
91 Ch
 
Apache
ApacheApache
Apache
 
20世紀Ruby
20世紀Ruby20世紀Ruby
20世紀Ruby
 
Web技術勉強会12回目
Web技術勉強会12回目Web技術勉強会12回目
Web技術勉強会12回目
 
Sentokyo Kansai(20070126)
Sentokyo Kansai(20070126)Sentokyo Kansai(20070126)
Sentokyo Kansai(20070126)
 
Web Refactoring
Web RefactoringWeb Refactoring
Web Refactoring
 

Web入門