第 7 回の内容 動的な Web サイト フォーム Web システムの構成

Similar documents
C:\Apache Software Foundation\Apache2.2\htdocs\sample\login.html サンプルプログラム passworddisc.php <head><title> ログイン </title></head> $user=$_post['user']; $

メディプロ1 Javaサーブレット補足資料.ppt

実験 5 CGI プログラミング 1 目的 動的にWebページを作成する手法の一つであるCGIについてプログラミングを通じて基本的な仕組みを学ぶ 2 実験 実験 1 Webサーバの設定確認と起動 (1)/etc/httpd/conf にある httpd.conf ファイルの cgi-bin に関する

2003年度 情報処理概論

5-5_arai_JPNICSecSemi_XssCsrf_CM_ PDF

WEBシステムのセキュリティ技術

PowerPoint プレゼンテーション

第7回 Javascript入門

JavaScript 演習 2 1

第7回 Javascript入門

Web のクライアントサーバモデル

■デザイン

Microsoft PowerPoint - Lecture_2

DB STREET 設置マニュアル

2019年度 Webシステムプログラミングa

J-Payment クレジットカード 決済システム接続仕様書

インターネットマガジン1996年3月号―INTERNET magazine No.14

Cisco CSS HTTP キープアライブと ColdFusion サーバの連携

ビジネスサーバ設定マニュアル_Standard応用編

アカウント管理者 操作ドキュメント

ご利用のコンピュータを設定する方法 このラボの作業を行うには 事前設定された dcloud ラボを使用するか 自身のコンピュータをセットアップします 詳細については イベントの事前準備 [ 英語 ] とラボの設定 [ 英語 ] の両方のモジュールを参照してください Python を使用した Spar

Microsoft Word - CBSNet-It連携ガイドver8.2.doc

クイックマニュアル(利用者編)

ウェブサイト内検索機能マニュアル

PowerPoint プレゼンテーション

Microsoft Word - CBESNet-It連携ガイドver8.1.doc

システム分析とデータベース設計

( 目次 ) 1. はじめに 開発環境の準備 仮想ディレクトリーの作成 ASP.NET のWeb アプリケーション開発環境準備 データベースの作成 データベースの追加 テーブルの作成

はじめに インフォマート API の呼び出しには OAuth2.0 による認証を受ける必要があります OAuth2.0 を使うことで インフォマート API を利用するサービスは インフォマートプラットフォーム ID( 1 以下 PFID) とパスワードを保存したり処理したりすることなく PFID

JavaScript演習

Sinatra と MongoDB 今回は Sinatra で MongoDB の操作を体験してみます 進捗に合わせて ドライバから Ruby で使える便利な ORM の紹介をします

PowerPoint プレゼンテーション

ホームページにパスワード認証を設定します 会員限定のページなどに利用できます 設定の手順 を設定するには 以下の手順で行います ユーザ登録 を設定したページにアクセスするためのユーザを登録します の設定 を設定するページ アクセスを許可するユーザを選択し 設定します 設定完了 を設定したページにアク

リスト 1 1 <HTML> <HEAD> 3 <META http-equiv="content-type" content="text/html; charset=euc-jp"> 4 <TITLE> 住所の検索 </TITLE> 5 </HEAD> 6 <BODY> <FORM method=

前ページからの続き // テキストボックス02 id 属性で取得 // id 属性で取得する場合は一意に決まるので 何番目かの指定は不要 var textbox02elem = document.getelementbyid("text_box02_id"); if ("001" == statee

改訂履歴 項番版数作成日 / 改訂日変更箇所変更内容. 平成 28 年 5 月 3 日新規章構成の変更, 分冊化に伴い新規作成 (i)

1. ログイン 1-1 管理画面へのログイン 施設の作成 編集 削除や承認 公開には その操作権限を持つアカウントでログイン します アカウントについての詳細は 管理者にお問い合わせください (1) [ ユーザー ID またはメールアドレス ] と [ パスワード ] を入力後 [ ログイン ] を

<4D F736F F D FC8E448FEE95F1837C815B835E838B C8F92E88B608F912E646F63>

PowerPoint プレゼンテーション

アンケートフォーム簡易作成機能マニュアル

目次 第 1 章ホームページ作成 ホームページの作成 ホームページ作成にあたっての留意事項 アクセスカウンタの設置方法 メール送信フォームのご利 方法 メール送信フォームご利 に関する留意事項.

共通フィルタの条件を設定する 迷惑メール検知 (SpamAssassin) の設定 迷惑メール検知 (SpamAssassin) とは.

ホームページ制作 基礎編 (HTML5 CSS3 コーディング )

JAIRO Cloud 初級ユーザー向け手引書 1. ユーザーアカウント管理 JAIRO Cloud 事務局 協力 : オープンアクセスリポジトリ推進協会 (JPCOAR) JAIRO Cloud 運用作業部会 ver date 修正内容 /11 初版

●コンテンツ「掲示板」

intra-mart Accel Platform — Slack連携モジュール 利用ガイド   初版  

ZOHO Sitesを用いたWebサイト構築の基本操作

PowerPoint Presentation

第 8 回の内容 クライアントサイド処理 JavaScript の基礎

1. 信頼済みサイトの設定 (1/3) この設定をしないとレイアウト ( 公報 ) ダウンロードなどの一部の機能が使えませんので 必ず設定してください 1 Internet Explorer を起動し [ ツール ]-[ インターネットオプション (O)] を選択します 2 [ セキュリティ ] の

Microsoft PowerPoint - Lecture_3

Transcription:

第 7 回の内容 動的な Web サイト フォーム Web システムの構成

動的な Web サイト

静的なリソース ファイルシステムのパス / URI のパス a 公開ディレクトリ / b b GET /b HTTP/1.1 c c e d /a/b を送り返す d e

静的なリソース ファイルシステムのパス / / URI のパス f b c e GET /g/e HTTP/1.1 d /f/e を送り返す g b c e d

動的なリソース 商品を紹介するページに データベースに格納されている在庫情報も表示する ユーザーから送られてきた検索キーワードにマッチする情報の一覧を表示する

動的なリソースの生成 1 随時変化するWebサーバ上の情報 2 メッセージヘッダで渡される情報 3 クエリやメッセージボディで渡される情報

動的なリソースの生成 1 随時変化するWebサーバ上の情報 2 メッセージヘッダで渡される情報 3 クエリやメッセージボディで渡される情報 データベースに記録されているデータ サーバの負荷 処理を行った日時

動的なリソースの生成 1 随時変化するWebサーバ上の情報 2 メッセージヘッダで渡される情報 3 クエリやメッセージボディで渡される情報 コンテントネゴシエーション用のヘッダ User-Agentヘッダ Refererヘッダ

動的なリソースの生成 1 随時変化するWebサーバ上の情報 2 メッセージヘッダで渡される情報 3 クエリやメッセージボディで渡される情報 http://www.example.ac.jp:8080/path/to/resource?qt=%e3%81%82&page=1#r5

動的なリソースの生成 1 随時変化するWebサーバ上の情報 2 メッセージヘッダで渡される情報 3 クエリやメッセージボディで渡される情報 http://www.example.ac.jp:8080/path/to/resource?qt=%e3%81%82&page=1#r5 リクエストを処理するプログラム そのプログラムに渡す情報

動的なリソースの生成 1 随時変化する Web サーバ上の情報 2 メッセージヘッダで渡される情報 3 クエリやメッセージボディで渡される情報 3 クエリとして渡された情報を元に 1 データベースを検索した結果を 2 コンテントネゴシエーションにより希望された PNG 画像として提供する

フォーム

フォームの例

フォームの例

フォーム ユーザーが情報を入力して送信 コントロール 情報を入力する部品 フォームが指定するURIに遷移 GETメソッドとPOSTメソッドが利用可

コントロール コントロールボタンチェックボックスラジオボタンメニューテキスト入力ファイル選択隠しコントロール

コントロール コントロールボタンチェックボックスラジオボタンメニューテキスト入力ファイル選択隠しコントロール

コントロール コントロールボタンチェックボックスラジオボタンメニューテキスト入力ファイル選択隠しコントロール

コントロール コントロールボタンチェックボックスラジオボタンメニューテキスト入力ファイル選択隠しコントロール コントロール ラベル

コントロール コントロールボタンチェックボックスラジオボタンメニューテキスト入力ファイル選択隠しコントロール

コントロール コントロールボタンチェックボックスラジオボタンメニューテキスト入力ファイル選択隠しコントロール

コントロール コントロールボタンチェックボックスラジオボタンメニューテキスト入力ファイル選択隠しコントロール

コントロール コントロールボタンチェックボックスラジオボタンメニューテキスト入力ファイル選択隠しコントロール

コントロール コントロールボタンチェックボックスラジオボタンメニューテキスト入力ファイル選択隠しコントロール

コントロール コントロールボタンチェックボックスラジオボタンメニューテキスト入力ファイル選択隠しコントロール

コントロール コントロールボタンチェックボックスラジオボタンメニューテキスト入力ファイル選択隠しコントロール

コントロール コントロールボタンチェックボックスラジオボタンメニューテキスト入力ファイル選択隠しコントロール

コントロール コントロールボタンチェックボックスラジオボタンメニューテキスト入力ファイル選択隠しコントロール

コントロール コントロールボタンチェックボックスラジオボタンメニューテキスト入力ファイル選択隠しコントロール

コントロール コントロールボタンチェックボックスラジオボタンメニューテキスト入力ファイル選択隠しコントロール

form 要素 <form action="./buy" method="post"> <!-- ここにコントロールや その他の HTML 要素を配置 --> </form>

form 要素 <form action="./buy" method="post"> <!-- ここにコントロールや その他の HTML 要素を配置 --> </form> 属性名 action 属性値 フォームデータの送信先 URI

form 要素 <form action="./buy" method="post"> <!-- ここにコントロールや その他の HTML 要素を配置 --> </form> 属性名 action method 属性値 フォームデータの送信先 URI フォームデータの送信に用いられるメソッド

form 要素 <form action="./buy" method="post"> <!-- ここにコントロールや その他の HTML 要素を配置 --> </form> 属性名 action method enctype 属性値 フォームデータの送信先 URI フォームデータの送信に用いられるメソッド 送信されるフォームデータのメディアタイプ既定値は application/x-www-form-urlencoded

フォームの送信 1 送信するデータの特定 2 フォームデータの加工 3 フォームデータの送信

送信するデータの特定 送信するデータに含める 送信するデータに含めない

フォームの送信 1 送信するデータの特定 2 フォームデータの加工 3 フォームデータの送信

フォームの例 <form action="/e" method="post"> <p> 名前 :<input type="text" name="name" value=""> <br> 会員種別 : <select name="member"> <option value="g"> 一般会員 </option> <option value="s"> 学生会員 </option> <option value="n" selected> 非会員 </option> </select> <br> <label><input type="checkbox" name="forum" value="yes"> フォーラム参加 </label> <label><input type="checkbox" name="party" value="yes"> 懇親会参加 </label> <br> <button type="submit"> 送信 </button> <button type="reset"> リセット </button> </p> </form>

フォームの例 <form action="/e" method="post"> <p> 名前 :<input type="text" name="name" value=""> <br> 会員種別 : <select name="member"> <option value="g"> 一般会員 </option> <option value="s"> 学生会員 </option> <option value="n" selected> 非会員 </option> </select> <br> <label><input type="checkbox" name="forum" value="yes"> フォーラム参加 </label> <label><input type="checkbox" name="party" value="yes"> 懇親会参加 </label> <br> <button type="submit"> 送信 </button> <button type="reset"> リセット </button> </p> </form>

フォームの例 <form action="/e" method="post"> <p> 名前 :<input type="text" name="name" value=""> テキスト入力 <br> 会員種別 : <select name="member"> <option value="g"> 一般会員 </option> <option value="s"> 学生会員 </option> <option value="n" selected> 非会員 </option> </select> <br> <label><input type="checkbox" name="forum" value="yes"> フォーラム参加 </label> <label><input type="checkbox" name="party" value="yes"> 懇親会参加 </label> <br> <button type="submit"> 送信 </button> <button type="reset"> リセット </button> </p> </form>

フォームの例 <form action="/e" method="post"> <p> 名前 :<input type="text" name="name" value=""> テキスト入力 <br> 会員種別 : <select name="member"> メニュー <option value="g"> 一般会員 </option> <option value="s"> 学生会員 </option> <option value="n" selected> 非会員 </option> </select> <br> <label><input type="checkbox" name="forum" value="yes"> フォーラム参加 </label> <label><input type="checkbox" name="party" value="yes"> 懇親会参加 </label> <br> <button type="submit"> 送信 </button> <button type="reset"> リセット </button> </p> </form>

フォームの例 <form action="/e" method="post"> <p> 名前 :<input type="text" name="name" value=""> テキスト入力 <br> 会員種別 : <select name="member"> メニュー <option value="g"> 一般会員 </option> <option value="s"> 学生会員 </option> <option value="n" selected> 非会員 </option> チェックボックス </select> <br> <label><input type="checkbox" name="forum" value="yes"> フォーラム参加 </label> <label><input type="checkbox" name="party" value="yes"> 懇親会参加 </label> <br> <button type="submit"> 送信 </button> <button type="reset"> リセット </button> </p> </form>

フォームの例 <form action="/e" method="post"> <p> 名前 :<input type="text" name="name" value=""> <br> 会員種別 : <select name="member"> <option value="g"> 一般会員 </option> <option value="s"> 学生会員 </option> <option value="n" selected> 非会員 </option> </select> <br> <label><input type="checkbox" name="forum" value="yes"> フォーラム参加 </label> <label><input type="checkbox" name="party" value="yes"> 懇親会参加 </label> <br> <button type="submit"> 送信 </button> <button type="reset"> リセット </button> </p> </form> テキスト入力 メニュー チェックボックス ボタン

フォームの例

フォームの例

フォームへの入力

送信するデータの特定

フォームデータの加工 名前 name 値 放送太郎 <input type="text" name="name" value="">

フォームデータの加工 名前 name 名前 member 値放送太郎値 s <select name="member"> <option value="g"> 一般会員 </option> <option value="s"> 学生会員 </option> <option value="n" selected> 非会員 </option> </select>

フォームデータの加工 名前 name 名前 member 名前 forum 値放送太郎値 s 値 yes <input type="checkbox" name="forum" value="yes">

フォームデータの加工 名前 name 名前 member 名前 forum 値放送太郎値 s 値 yes

フォームデータの加工 1. スペースを + に変換英数字と一部の記号を除いた文字を %XX の形式に変換 2. エスケープした名前と値を = でつなぐ 3. 名前と値のペアを & でつなぐ 名前 name 名前 member 名前 forum 値放送太郎値 s 値 yes

フォームデータの加工 1. スペースを + に変換英数字と一部の記号を除いた文字を %XX の形式に変換 2. エスケープした名前と値を = でつなぐ 3. 名前と値のペアを & でつなぐ 放 送 名前 name 名前 member 名前 forum 太 値放送太郎値 s 値 yes 郎 放送太郎 %E6%94%BE%E9%80%81+%E5%A4%AA%E9%83%8E スペース

フォームデータの加工 1. スペースを + に変換英数字と一部の記号を除いた文字を %XX の形式に変換 2. エスケープした名前と値を = でつなぐ 3. 名前と値のペアを & でつなぐ 名前 name 名前 member 名前 forum 値放送太郎値 s 値 yes name=%e6%94%be%e9%80%81+%e5%a4%aa%e9%83%8e member=s forum=yes

フォームデータの加工 1. スペースを + に変換英数字と一部の記号を除いた文字を %XX の形式に変換 2. エスケープした名前と値を = でつなぐ 3. 名前と値のペアを & でつなぐ 名前 name 名前 member 名前 forum 値放送太郎値 s 値 yes name=%e6%94%be%e9%80%81+%e5%a4%aa%e9%83%8e&member=s&forum=yes

フォームの送信 1 送信するデータの特定 2 フォームデータの加工 3 フォームデータの送信

フォームデータの送信 form 要素の action 属性値で指定された URI に method 属性値で指定されたメソッドを使ってリクエストを発行 GET メソッド URI のクエリにする POST メソッド メッセージボディに入れて送信

GET メソッドによる送信 <form action="/e" method="get"> <button type="submit"> 送信 </button> </form> リクエスト GET /e?name=%e6%94%be%e9%80%81+%e5%a4%aa%e9%83%8e&member=s&fo rum=yes HTTP/1.1

POST メソッドによる送信 <form action="/e" method="post"> <button type="submit"> 送信 </button> </form> リクエスト POST /e HTTP/1.1 Content-Type: application/x-www-form-urlencoded Content-Length: 61 name=%e6%94%be%e9%80%81+%e5%a4%aa%e9%83%8e&member=s&forum=yes

GET と POST の使い分け GET メソッドはリソースの取得 検索を行い その結果を得る 掲示板への投稿

フォームの例

GET と POST の使い分け GET メソッドはリソースの取得 検索を行い その結果を得る 掲示板への投稿 データサイズが大きい場合は POST メソッド データを知られにくくするには POST メソッド

ブックマーク <form action="http://www.example.ac.jp/e" method="get"> </form> http://www.example.ac.jp/e?name=%e6%94%be%e9%80%81+ %E5%A4%AA%E9%83%8E&member=s&forum=yes

Web システムの構成

Web サーバソフトウェア リクエストを待ち受け URI で要求されるリソースを返却 コンテントネゴシエーション HTTP 認証 (Basic 認証 Digest 認証 )

Common Gateway Interface (CGI) Web サーバ プロセス 1 HTTP リクエスト 2 CGI リクエスト Web ブラウザ Web サーバソフトウェア CGI スクリプト 4 HTTP レスポンス 3 CGI レスポンス HTTP の取り決め範囲 CGI の取り決め範囲

同一プロセス内でのリソース生成 リソース生成プログラム Web ブラウザ Web サーバソフトウェア

アプリケーションサーバの利用 リソース生成プログラム Web ブラウザ Web サーバソフトウェア アプリケーションサーバ

ハードウェアの構成 CL Web AP DB CL Web AP DB CL Web AP DB CL Web AP クライアント (Web ブラウザ ) Web サーバソフトウェア アプリケーションサーバ CL Web AP AP DB DB データベース管理システム

第 7 回の内容 動的な Web サイト フォーム Web システムの構成