2015/11/15 javaでwebアプリケーション入門
TRANSCRIPT
API
• Application Programming Interface
• 外部のプログラムから機能を利用するためのインターフェイス
• 特にRESTという設計思想に基づいたAPIは「REST API」と呼ばれる
フレームワークとは
• アプリケーションに共通する基本的なプログラム構造や機能セットを実装したプログラム。
• アプリケーションの骨組み。土台。
• 複雑なシステムを一から作るのは大変なので、フレームワークを利用して開発する。
• 様々なフレームワークが存在する。
(引用元:http://itpro.nikkeibp.co.jp/article/Keyword/20070528/272739/)
Webアプリケーションとは
• Webアプリケーションとは、Webサーバー上で動作し、Webブラウザを用いて利用するアプリケーションのことである。
引用元:http://www.weblio.jp/content/%E3%82%A6%E3%82%A7%E3%83%96%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3
サーバー/クライアントモデル
• サーバーは提供する側。クライアントは提供される側。
• Webアプリの世界にかぎらず、サーバー/クライアントという言葉は使う。
• 今日説明するのは、あくまでWebアプリでのサーバーとクライアント。
クライアント
• サーバーに必要な情報(リソース)を要求し、返却された情報を利用する側。
• WebアプリでいうところのクライアントはWebブラウザ。
• Webブラウザはサーバーから返却された情報(リソース)を解析、表示する。
• HTML/CSS/JavaScript
• 画像
リソースの種類
• HTML
• HyperText Markup Language
• Webの文章を記述するためのマークアップ言語
• CSS
• Cascading Style Sheets
• Webのスタイルを指定するための言語
• 装飾を行う
• JavaScript
• Webブラウザで動くプログラミング言語
• 主に、Webサイトの動的な動きの実装に使われる
• Javaとは関係ない
サーバー
• クライアントの要求に応じて、リソースを返却する側
• サーバー機能を提供するサーバーソフトを使用
• Apache、nginxなどなど色々種類がある
• Javaの場合、TomcatやJetty
• サーバーマシンは特殊なPCがいるわけではない
• ただし、自前で用意するとなると大変なので今はあまりやらない・・・
リクエスト• クライアントの要求
GET /search HTTP/1.1
Host: www.google.co.jp
例) https://www.google.co.jp/search の情報を取得
① ② ③
④
① メソッド② リクエストURI③ プロトコルバージョン④ リクエストヘッダ ・・・メタデータ(⑤ リクエストボディ ・・・ 更新情報などサーバーへ送信したい情報)
レスポンス• リクエストを元にサーバーで生成し返却される情報HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
<html> … </html>
① ② ③
④
⑤
① プロトコルバージョン② ステータスコード・・・実行結果を表すコード③ テキストフレーズ ・・・実行結果を表すフレーズ④ レスポンスヘッダ ・・・メタデータ⑤ レスポンスボディ ・・・返却情報本体
リクエストボディ
POST /sample HTTP/1.1 Host: localhost:8080 Connection: keep-alive Content-Length: 8 …text=Hello
• リクエストヘッダの後ろに付与される
コンパイル
• 一般的には、ソースコードをコンピュータが実行できる機械語のプログラムに変換すること。
• Javaの場合、JVMが実行できるバイトコードのクラス・ファイルに変換される。
• Javaのコンパイラはjavac
• javacコマンドでコンパイルできる
• IDEのrunボタンを押した時に裏で実行してくれている
JDK
• Java SE Development Kit
• Java用開発者向けキット
• アプリケーションを開発するのに必要または便利なコンパイラやデバッガなどの開発ツール
• 一般的に、こういう開発者向けキットを「SDK (Software Development Kit)」という
(参考元:http://docs.oracle.com/javase/jp/8/docs/technotes/guides/index.html#jre-jdk)
JVM
• Java仮想マシン
• Javaで開発されたアプリケーションはJVM上で実行される
• 各OS版のJVMが存在する。OS差異はJVMにより吸収されるため、同じプログラムで各OS上で実行することができる。
• Write once, run anywhere