Chapter4 Webの様々なデータ形式(1〜3)
#01 HTML
HTML文書は、タグに囲まれた文書によって構成される。
HTMLは、時代によってバージョンアップされる
以下、重要な単語を記載
・タグ・・・囲んだ文書が「何を示すか」を表すもの
・開始タグ・・・始まりを示すタグ
・終了タグ・・・終了を示すタグ
・要素・・・開始タグ・文書・終了タグの塊
・要素名・・・そのかたまりが「何を示すのか」
・属性・・・要素の特性を示す。要素に追加できる
#02 Webページで使用される画像形式
#JPEG(Joint Photographic Experts Group)
多くのデジカメで採用されている。
データを削れば削るほど画質が荒くなってしまうのが特徴
#GIF(Graphics Interchange Format)
データの整理を行うことによってデータを圧縮するため、データの圧縮による
画像の劣化は発生しない。
アニメーションができる
#PNG(Portable Network Graphics)
GIFと同様に圧縮によるデータの劣化はしない
#03 XML(Extensible Markup Language)
HTMLと同じマークアップ言語
改良して生まれた言語
##XHTML(Extensible HyperText Markup Language)
HTMLをXMLの文法で再定義したもの
担当:らうみー
Chapter3 HTTPでやりとりする仕組み(13〜COLUMN)
HTTPSはステートレス(サーバがクライアントのセッションの状態を保持しない、という制約)なプロトコルであるため、WebブラウザとWebサーバーの一連のやりとりにおいて、状態を維持し管理する仕組みがない。
そのため、ショッピングサイトなどで状態を保持し管理する必要がある場合にはCookieと呼ばれるデータが用いられる。
13.Cookie(クッキー)〜ステートレスで状態を維持する仕組み〜
●Cookieのやりとり
例:ショッピングサイト)
③(次にWebサーバーに接続する際に)保存しておいたCookieを送信する
④Webサーバーは接続してきた相手を識別できる
●メッセージヘッダーの利用
Cookieの送信にはメッセージヘッダーが利用される。
WebサーバーはHTTPレスポンスに「Set-Cookie」ヘッダーを含めることで送信できる。
●セッションCookie
セキュリティ上の観点からショッピングサイトなどで使われる。
14.セッション〜一連の処理の流れを管理する〜
セッション:WebブラウザとWebサーバーのやりとりにおいて、一連の関連性のある処理の流れ。
例:ショッピングサイト)
①商品を選ぶ
②買い物カゴに入れる
③カゴの中身を確認する
④商品を購入する
●セッションの管理
セッションID:セッション管理においてWebブラウザを識別するための情報
●セッションIDのやりとり
Cookieを用いる方法が一般的。
15.URI〜あらゆるリソースを識別する記述方法〜
URI:(Uniform Resource Identifier)。情報やデータといったリソースを識別するための記述方法。コンピューターが扱うリソースに限らず、人や会社、書籍など、あらゆるリソースを示すことができる
URL:(Uniform Resource Locator)。リソースが存在する場所と取得する方法を示すもの。Webサイトの場所を示す際に使われる
URN:(Uniform Resource Name)。場所は問わずにリソースの名前を示すもの。刊行された書籍を一意に特定し識別するためのISBNコードなどを使ってURNを特定可能
HTTPにおいても、リソースを特定するためにURIが利用されている。
●パーセントエンコーディング
COLUMN WEBサイトの「HTTPS」化がとまらない?
近年、HTTPSを導入しているWebサイトが増えてきた。
従来→ショッッピングサイト、フォームなどで個人情報を送信する企業サイト の一部の重要ページくらい
なぜ?
利用者の接続環境の変化
HTTPSでもリスクは存在する。利用者側もセキュリティ意識を持つ必要がある。
Chapter3 HTTPでやりとりする仕組み(9〜12)
#09 HTTP/2での改良点
HTTP/2はストリームの多重化の他に以下の改良点がある。
##バイナリ形式の利用
HTTP/1.1 以前・・・HTTPリクエストやHTTPレスポンスのやり取りがテキスト形式
バイナリ形式・・・コンピューターがわかるデータの形式
→変換にかかる時間とWebブラウザ、Webサーバーの負担が減った。
##へッダーの圧縮
HTTP/2.0 以降・・・ヘッダー情報も圧縮することが可能
また、HTTPリクエストやHTTPレスポンスのやり取りで重複するデータの差分だけを送るHPACKと呼ばれる圧縮方式を利用できることも可能
##サーバープッシュ
通常はWebブラウザからHTTPリクエストに応じて、Webサーバーが必要なコンテンツを転送するが、HTTP/2.0 ではHTTPリクエストの情報を元にWebサーバー側で必要なファイルを判断して、WebブラウザからHTTPリクエストなしに、事前にWebサーバーから転送する。
#10 HTTPSの仕組み
##安全性を確保する仕組み
・盗聴防止
万が一傍受されても内容を解読させないためにデータを暗号化して送る
・改ざん防止
ネットバイキングにおいて振込先情報が書き換えられてしますと行ったデータの改ざん対策として「メッセージダイジェスト」が利用される。
データ送受信時にハッシュ値を比較して改ざんを検知できます。
・なりすまし防止(Webサイト運用元の確認)
接続じに検証することにより、Webサイトを運営する会社の身元を確認できる。
#11 HTTPSのやり取り
TCPコネクションが確率された後に通信を行う前に大きく4つのフェーズのやり取りを行う必要がある。
1 暗号化方式の決定
2 通信相手の証明
このフェーズではWebブラウザが通信しているWebサーバーが正しい相手なのかどうかSSLサーバー証明書により確認する。正しいWebサーバーであることを確認できなかった場合は、Webブラウザ上に警告が出る。
3 鍵の交換
鍵はデータを転送する際の暗号化、および暗号化されたデータを複合する際に利用する。
4 暗号化方式の確認
実際に利用する暗号化方式の最終確認を行う。
#12 ステートフルとステートレス
##ステートフル
→状態を保持する
##ステートレス
→状態を保持しない
Webシステムで利用されるHTTPでは、多くの処理を素早く処理するためにも、状態を保持することなく要求された内容を応答するだけのステートレスな設計が適している。
##HTTPの弱点
Webが進化するにつれて、HTTPがステートレスでは困ることが増えてきた。
担当:らうみー
Chapter3 HTTPでやりとりする仕組み(05〜08)
#05 メッセージヘッダー
##メッセージヘッダーとは?
HTTPリクエスト、レスポンスはいずれも「メッセージヘッダー」を利用することで
HTTPメッセージに関する詳細な情報を送信することが可能
メッセージヘッダーは複数の「ヘッダーフィールド」と呼ばれる行から成り立つ。
##ヘッダーフィールドの構成
フィールド名:フィールド値
##主なヘッダーフィールド
・一般ヘッダーフィールド
・リクエストヘッダーフィールド
・レスポンスヘッダーフィールド
・エンティティヘッダーフィールド
#06 TCPによるデータ通信
#TCP(Transmission Control Protocol)役割とは?
WebブラウザからWebサーバーへのHTTPのデータのやり取り行う役割
##コネクションとは?
TCPでクライアントとサーバーがお互いに通信ができる状態になのか確認して
確立した通信経路のこと
以下にコネクションの確立のやり取りを記載
1クラアントから接続要求(SYN)
2クラアントに対して確認応答および、サーバーからの接続要求(SYN+ACK)
3サーバーに対して確認応答(ACK)
#07 HTTP1のやり取り
##HTTPキープアライブ
コネクションを継続して利用する方式
理由:以前は1回の通信でコネクションを確立していたが、画像取得の増加により何回もコネクションをしなければならなくなり、非効率のため
##HTTP パイプライン
HTTPデータやり取り効率化の機能
HTTPレスポンスを受け取る前に複数のHTTPリクエストを送信することが可能な機能
#08 HTTP/2のやり取り
##前段
Webサイトの閲覧を快適にするためにデータのやり取りを高速化することを目的としたHTTP/2が登場しました。
##ストリームによる多重化
HTTPリクエストとHTTPレスポンスは順番に処理しなければならなかった。
この問題を解決するために、HTTP/2では1つのTCPコネクション上に「ストリーム」という
仮想的な通信経路を複数生成して、それぞれのストリームの中でリクエストとレスポンスの
やり取りを可能にした。
担当:らうみー
Chapter3 HTTPでやりとりする仕組み(1〜4)
・HTTPがどのようにしてWebサイトの閲覧を実現しているのか
・HTTPだけでは実現できない、現在のWebサイトの仕組みを支える技術
01 HTTPメッセージ〜HTTPでやりとりするデータの構造〜
HTTP(HyperText Transfer Protocol)……HTMLなどのテキストファイルや、画像などのコンテンツをやりとりするときに使われるプロトコル
●HTTPメッセージによる「要求」と「応答」
HTTPではほかのクライアント/サーバーシステムと同様に、クライアントであるWebサーバーがその要求に対して応答を返すといった単純なやりとりを繰り返すことで、Webサイトの閲覧を可能としている
HTTPメッセージ……HTTPにおいて、WebブラウザとWebサーバーでやりとりする際に利用されるデータ形式。Webブラウザがどういったデータを欲しいのかという要求をWebサーバーに伝えることができ、またWebサーバーもHTTPメッセージを利用してWebブラウザの要求に対する応答ができる
●2種類のHTTPメッセージ
HTTPレスポンス……Webサーバーからの応答
●HTTPリクエスト
メッセージボディ……Webページ内のフォーム欄などに入力したテキストデータなどをWebサーバーに送る
●HTTPレスポンス
HTTPレスポンスは、「ステータス行」「メッセージヘッダー」「メッセージボディ」の3つに分けることができる
メッセージヘッダー……Webサーバーの種類や、送信するデータの形式などの付加的な情報を記述
HTTPリクエストとHTTPレスポンスのやりとりを繰り返し行うことで、Webサイトを閲覧できる
03 HTTPメソッド〜Webサーバーへの要求の種類〜
●「GET」と「POST」の違い
データの送信方法が異なる
GETメソッド……URLの後ろに送りたいデータを付与して送る
POSTメソッド……HTTPリクエスト内のメッセージボディ内にデータを含めて送る
04 ステータスコード〜応答結果の種類を表す数字〜
●ステータスコードの分類
5つに分類される
・100番台……HTTPリクエストを処理中であることを通知
・200番台……HTTPリクエストに対して、正常に処理した場合に通知
・400番台……クライアント(Webブラウザ)のエラーであることを通知
・500番台……Webサーバーのエラーであることを通知
担当:やし
2 Webとネットワーク技術(P42〜)
2-5 URLとドメイン
#URL(Uniform Resource Locator)
サイトを示す場所、データやファイルを取得方法を示す
http:// スキーム名・・・プロトコルを指定する
80/ ポート番号・・・接続先のサーバーポート番号を指定する。省略可能。
省略するならば、プロトコルにあった番号を指定される
test.html パス名・・・接続先のサーバー上のディレクトリやファイルを指定する
#ドメイン
IPアドレスを変えたもの(わかりにくいため)
ドメイン名とホスト名の違いを以下に記載
ドメイン名・・・ネットワークを特定するための文字列
ホスト名・・・ネットワーク上のコンピューターに付ける識別用の文字列
06 DNS
#DNS(Domain Name System)
07 HTTP
#HTTP(HyperText Tranfer Protocol)1a5
クライアントとサーバー間のWebコンテンツを送受信するためのプロトコル
#クライアントとサーバー間のやりとり
1 Webブラウザのアドレス欄にURLを入力、あるいはWebサイトのリンクをクリック
2 URLやリンク情報に基づいてWebサーバーに対してデータを要求
3 Webブラウザより要求を受け取ったWebサーバーは要求内容を解析
4 解析した結果より、要求されたデータをWebブラウザへと応答
5 WebブラウザはWebサーバーより受け取ったデータを解析し、Webページとして表示
IPには2種類ある
IPv4から移行は進んでいない。(省略する技術が進んでいるため)
プライベートネットワークが構築され、プライベートIPアドレスが利用される。
ネットワークアドレス変換(NAT)によりグローバルIPに変換される。
担当:らうみー
Chapter 2 Webとネットワーク技術(01〜04)P.34
01 Webを実現するコンピューターネットワーク
コンピューターネットワーク:コンピューターが互いに接続して情報のやり取りをする仕組み
●クライアントとサーバー
サーバー:ネットワーク上で情報やサービスを提供する役割を持つコンピューター。webサイトを提供(webサーバー)
クライアント:サーバーから提供された情報やサービスを利用する役割を持つコンピューター。webサイトを表示
●インターネットとは
インターネット:自宅や会社、学校など小さな範囲のネットワークが1つ1つ互いに接続し、
世界中のネットワークが繋がった環境
各国に複数のプロバイダーが存在する
スマートフォン・パソコン ー<接続>→ プロバイダー ←<接続>→ プロバイダー
02インターネットの標準プロトコル
●プロトコルとは
プロトコル:ネットワークに接続された機器同士が通信をするときの、あらかじめ決められた共通のルールや手順
互いに同じプロトコルを利用することにより、データのやり取りが可能となる
<復習>
●やりとりの手順 HTTP
●TCP/IPとは
インターネットにおけるさまざまなサービスを実現するためのプロトコルの集まり。
●HTTPもTCP/IPの一部
03 TCP/IP
TCP/IPは役割ごとに4つの階層に分かれている
レイヤー4.アプリケーション層
レイヤー3.トランスポート層
レイヤー2.インターネット層
レイヤー1.ネットワークインターフェース層
レイヤーごとの役割に応じたプロトコルが各レイヤーで利用されている。
4つの階層のプロトコルが連携することでインターネットでの通信が可能となる
●アプリケーション層の機能
Webブラウザやメールソフトなどのアプリケーションごとのやり取りを規定
UDP:User Datagram Protocolの略
04 IPアドレスとポート番号
IPアドレス:インターネットに接続されたコンピューターを特定し、データの行先を管理するために利用されている識別番号
同じIPアドレスは存在しない
住所
●ポート番号
ポート番号:コンピューターの内部にある各サービスを識別するための番号
部屋番号
IPアドレスは接続したいコンピューターを指定できるが、コンピューターが提供するサービスまでは指定できない
IPアドレスとポート番号を指定することで特定のコンピューターの特定のサービスを受けることができる
●Webサーバーは80番
ポート番号は「0〜65535」までの数字で、範囲によって用途が決められている
Webサーバー(HTTP)のポート番号は80番
担当:やし