狠狠撸

狠狠撸Share a Scribd company logo
※本資料は、2015年4月に弊社主催で行われた?
「非エンジニア向けカンファレンス」で利用した資料を?
?再度編集したものとなります。ご了承ください。
これだけは押さえておきたい
WEBサービスの基礎技術
株式会社we-b 代表取締役 真子 就有
本資料のゴール
WEBサービスに関連した基礎技術が?
それぞれどのような役割を持っているか?
イメージできるようになること
目次
1. リクエストとレスポンス
2. サーバーとは何か
3. ウェブサイトの仕組み
4. サーバーサイドスクリプトとデータベース
目次
1. リクエストとレスポンス
2. サーバーとは何か
3. ウェブサイトの仕組み
4. サーバーサイドスクリプトとデータベース
ウェブサービスや、スマホアプリなど?
インターネットを使ったサービスは、?
サーバーと通信をしています。
※サーバーについては後程、詳しく解説します
PC、スマホからサーバーに情報を?
要求することをリクエストと呼びます
http:://tech-camp.in?
を見せて!
リクエストに応えて、サーバーからPC、スマホ側?
に情報を返すことをレスポンスと呼びます。
OK!
サイトの情報渡すね!
ちなみに情報を要求する側は、クライアントサイド?
情報を返す側をサーバーサイドと呼ばれます
「いろいろ要求するのはお客さん(クライアント)」?
と覚えてしまいましょう。
クライアントサイド サーバーサイド
WEBサービスは、リクエストとレスポンスの?
連続で成り立っています。
手紙のように往復でやりとりをするので?
住所にあたるものが必要になります。
IPアドレス
IPアドレス:?
54.248.81.201
住所:?
渋谷区桜丘町29番24号
リクエストを送る際に必要なサーバーの住所
例えばfacebookのIPアドレスはこちらです
「31.13.82.1」?
こんな数字を打ち込んだことはないですよね?
ちなみに「31.13.82.1」と打ち込んでも?
ちゃんとアクセスできます。
http://facebook.com
よく知っているのはこっちだと思います。
ドメイン
数字の羅列であるIPアドレスに人間が分かりやすい?
ようにつけられた紐付けられたIPアドレスの別名
31.13.82.1
わかりにくい!
facebook.com
わかりやすい!
この変換を名前解決と呼ぶ
リクエストを送る時、?
http://facebook.comだけではIPアドレスがわからな
いので、名前解決を行なおうとします。
facebookのサーバー
http://facebook.comの?
IPアドレスを知りたい!
IPアドレス:????
どうやって名前解决しているのか?
DNS(ドメインネームシステム)
インターネット上のドメイン名を管理するシステム。?
複数のDNSサーバーによって成り立っている。
facebook.com?
54.248.81.201 DNSサーバー
普段は意識することはありませんが、?
リクエストを送る前には、?
まずドメインの名前解決をして?
IPアドレスを取得しています。
ドメインを购入したことはあるでしょうか?
ドメインを買うと、サーバーのIPアドレスと?
紐付ける設定を行ないます。
ドメイン IPアドレス
※サーバーを借りるとIPアドレスを教えてもらえます
復習:リクエストとレスポンス
?WEBサービスは、リクエストとレスポンスの?
連続で成り立っている
?情報を要求する側は、クライアントサイド、情報を返
す側をサーバーサイドと呼ぶ
?IPアドレスはサーバーの住所をしめす数字の羅列
?ドメインは人間が分かりやすいようにつけられたIPア
ドレスの別名
目次
1. リクエストとレスポンス
2. サーバーとは何か
3. ウェブサイトの仕組み
4. サーバーサイドスクリプトとデータベース
先ほど、サーバーとはリクエストに対して?
レスポンスを返すものだと学びました。
サーバーと聞くとなんだか凄いものだと?
思ってる方は多いようです。
こんなごついイメージですか?
ざっくりいうと電源つけっぱで?
ネットに繋がった画面のないパソコンです。
みなさんのお持ちのパソコンでも?
設定をすればサーバーにできます。
必要な設定の1つがIPアドレスを固定する?
ということです。
みなさんのお持ちのPCはIPアドレスが?
コロコロ変わる住所不定の状況にあります。
?
自分のPCがリクエストを?
受けることはないので固定されたIPは必要ない
IPアドレスを固定するには、?
プロバイダーと別途契約が必要です。
ところで、?
みなさんのお持ちのパソコンの
OSはなんですか?
デスクトップOSの世界では?
未だwindowsのシェアが圧倒的です。
Linux
2%
Mac
7%
Windows
92%
2015年2月デスクトップOSシェア/円グラフ - Net Applications報告
OSシェア:デスクトップ
ちなみにモバイルOSだとiOSとAndroidが二強です。?
このあたりはご存知の方も多いと思います。
その他
11%
Android
36%
iOS
53%
OSシェア:モバイル/タブレット 全体 - NetMarketShare?2014年2月
OSシェア:モバイル/タブレット
サーバーも普通のPC?モバイル端末と?
同じようにOSが入っています。
UnixというOSを聞いたことがあるでしょうか。?
サーバー用OSのシェアではwindowsは少数派です。
その他
10%
Windows
32% Unix(Linux含む)
59%
参照URL:?http://w3techs.com/technologies/details/os-unix/all/all
OSシェア:Webサーバー
Unix
ざっくり言うと、OSの元祖のようなもの?
1969年にAT&Tのベル研究所で開発開始
http://ja.wikipedia.org/wiki/UNIX#/media/File:Unix_history-simple.svg
UNIX
さらにUnixの内訳をみると、?
LinuxというOSが大半を占めています。
その他
10%
Windows
32% Unix(Linux含む)
59%
参照URL:?http://w3techs.com/technologies/details/os-unix/all/all
Linux:60%?
Unknown:40%
UNIXの内訳
Linux
UNIXをベースにしたOSの一種?
サーバーOSとして世界的に大きなシェアを占めている?
Linuxをベースとして様々なバージョンが存在している
■代表的なLinuxベースOS
例:CentOSのデスクトップ画面
WindowsとMac以外の画面を見る機会は少ないですが?
LinuxOSもPCにインストールすれば普通に使えます。
少しややこしいですが、
サーバー用のOSはLinuxがよく使われていると
理解できれば大丈夫です。
サーバーとOSについて学んだので?
それに関連した話をします。
エンジニアが黒い画面を開いて?
カタカタしてるのを見た事ありませんか?
表示されているのは得たいのしれない文字だけ
マウスやトラックパッドを使って直感的に?
パソコンを操作できるのは今や当たり前です
昔のパソコンは文字を打つことしかできませんでした。
これはCUI(character-based user interface)と
呼ばれます。
クリックだけで誰もが使える?
今のGUI(グラフィカルユーザーインターフェイス)を?
普及させようと推し進めたのは、?
故スティーブジョブズ氏だったりします。
エンジニアはいつも黒い文字だけの画面を?
開いている理由は、開発はCUIを中心に行なうこ
とが多いからです。
すごい勢いでタイピングしてるように見せて、?
実はただフォルダを移動してるだけだったりします。
復習:サーバーとは何か
? サーバーは特定のリクエストに対してレスポンスを
返す電源ネットつけっぱのコンピューター
? サーバーのOSはLinuxが使われていることが多い
? 直感的にマウス等で操作ができるGUIに対し、開発
はコマンド操作のみのCUIが中心である
目次
1. リクエストとレスポンス
2. サーバーとは何か
3. ウェブサイトの仕組み
4. サーバーサイドスクリプトとデータベース
みなさんは、?
ブラウザを使って多くのウェブサイトを?
見ていると思います。
ウェブサイトの画面は?
どのような技術で表示されているのか?
学んでいきましょう。
HTML
ウェブページを作成するために開発された言語。?
文書の構造を明確にしたり文書の中に画像や動画を配
置できる。
HTMLファイル ブラウザの画面
世の中のあらゆるウェブサイトは?
HTMLで書かれています。
こちらは罢贰颁贬::颁础惭笔のウェブサイトです?
贬罢惭尝を表示するとこのようになります。?
しかし、注意すべき点としては?
HTMLはあくまでサイトの文章、画像の構造を?
決めるためのものだということです。
いわゆるデザインに関する情報は?
CSSという言語で指定していきます
CSS
ウェブページのスタイル(見た目)を指定するための言
語です。文章構造とデザインを切り分けることができ
ます。
CSSファイル
HTMLファイル
実行結果
見た目に関する情報はCSSで?
まとめて管理することができます。?
例えばウェブサイトの見出しの色だけ変えたい時、
HTMLが見た目の情報を持っていると、?
全てを編集しないといけないので骨が折れます。
修正 修正 修正
CSSでまとめて管理していると?
1つのファイルを編集するだけで済みます?
修正
ウェブサイトをつくりたいとおもったら、サーバーに
HTMLとCSSファイルをアップロードしておきます。
アップロード
レスポンスでHTMLファイルとCSSファイルを?
返すことでウェブページを表示することができます。
復習:ウェブサイトの仕組み
? HTMLはウェブページを制作するための言語で、文
章の構造を決めることができる。
? CSSは、ウェブページのスタイル(見た目)を指定す
ることができる
? レスポンスでHTMLとCSSを返すことでウェブペー
ジを表示することができる?
目次
1. リクエストとレスポンス
2. サーバーとは何か
3. ウェブサイトの仕組み
4. サーバーサイドスクリプトとデータベース
次に、サーバーがリクエストを?
受け取ったときの処理について考えていきます。
http:://tech-camp.in?
を見せて!
最後はレスポンスを?
返すことがゴールです
レスポンス
OK!
サイトの情報渡すね!
サーバー内部でどんなことが?
行われているか見ていきましょう!
あらゆるプログラムは、先ほど解説した?
LinuxOSの上で動作します
リクエスト
レスポンス
ここにただHTMLファイルを置くだけでも?
ウェブサイトは作れます
リクエスト
レスポンス
そのかわり、いつ見ても?
まったく同じページが表示されます。
ただのブログなら良いかもしれませんが?
サービスをつくることはできません。
サービスをつくるには、?
①データを保存する仕組み?
②サービスの仕様を反映したロジック?
が必要です。
サーバーサイドスクリプト?
(ruby/java/PHP)
データベース
ロジックはサーバーサイドスクリプト、?
データの保存はデータベースが担当します。
リクエスト
レスポンス
データベースから解説していきます
サーバーサイドスクリプト?
(ruby/java/PHP)
データベース
リクエスト
レスポンス
facebookのようなウェブサービスには?
多くの情報がのっています。
これらのデータを保存しておく场所が必要です。
データベース
データを保存するシステム。通常エクセルのような?
表形式で保存され、1つの表をテーブルと呼ぶ。
id 名前 性別 年齢 住所
1 真子 男性 25 東京
2 木村 女性 21 神奈
3 鈴木 男性 22 栃木
4 小林 男性 23 群馬
ユーザーテーブル
id 本文 日時 投稿者id
1 おはよう 14/1/1 1
2 こんにちは 14/1/2 2
3 おやすみ 14/1/3 3
4 さよなら 14/1/4 4
投稿テーブル
データベースを操作するための言语も存在します
SQL(エスキューエル)
データベースを操作するための言語。?
テーブルの読み出し、追加、更新などの操作ができる
id 名前 性別 年齢 住所
1 真子 男性 25 東京
2 木村 女性 21 神奈
3 鈴木 男性 22 栃木
SELECT * FROM USERS WHERE ID = 1;
例:ユーザーテーブルからIDが1のレコード(列)を取り出す
次にサーバーサイドスクリプトについて説明します
サーバーサイドスクリプト?
(ruby/java/PHP)
データベース
リクエスト
レスポンス
データベースはただデータが?
保存されているだけなので、?
それだけでサービスをつくることはできません。
サービスの仕様にもとづいたロジックや?
実際に返すHTMLの情報をプログラムしておく?
必要があります。
サーバーサイドスクリプト
Ruby、Java、PHPを始めとするサーバー?
での処理を担うプログラム。これらを用いてロジック?
を書くことで動的なアプリケーションを作成できる
サーバーサイドスクリプトは、必要に応じて?
SQLを用いてデータベースから情報を取得します
サーバーサイドスクリプト?
(Ruby/Java/PHP)
データベース
SELECT * FROM USERS ?
WHERE ID = 1;
サーバーサイドサイドスクリプトは、データベースから
取得したデータを利用して HTML/CSS を生成します。
サーバーサイドスクリプト?
( Ruby / Java / PHP )
データベースから取得したデータ
Ruby、PHP、Javaなど複数のサーバーサイドス
クリプトの言語がありますが、書き方が違うだけ
で役割は変わりありません。
サーバーサイドスクリプト?
(Ruby/Java/PHP)
データベース
最後は、サーバーからクライアントサイドに?
HTML/CSSを返して終了です。
リクエスト
レスポンス
ブラウザが理解できるのは HTML/CSS だけです。?
データベースやサーバーサイドスクリプトは、ブラ
ウザとは全く関係ありません。
復習:?
サーバーサイドスクリプトと データベース
? データベースは、データの保存するシステムで?
テーブルとよばれる表形式で保存される
? SQLはデータベースを操作するための言語
? サーバーサイドスクリプト(Ruby、Java、PHP等)は?
ウェブサービスのロジックを担当する
? サーバーサイドスクリプトは、データベースから必要な?
データを取得する?

More Related Content

非エンシ?ニアカンファレンス资料の抜粋