読書会でまとめたものになります

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と同じマークアップ言語
SGML(Standard Generalized Markup Language)というマークアップ言語を
改良して生まれた言語
 
##XHTML(Extensible HyperText Markup Language)
HTMLをXMLの文法で再定義したもの
 
担当:らうみー

Chapter3 HTTPでやりとりする仕組み(13〜COLUMN)

HTTPSはステートレス(サーバがクライアントのセッションの状態を保持しない、という制約)なプロトコルであるため、WebブラウザとWebサーバーの一連のやりとりにおいて、状態を維持し管理する仕組みがない。
そのため、ショッピングサイトなどで状態を保持し管理する必要がある場合にはCookieと呼ばれるデータが用いられる。
 

13.Cookie(クッキー)〜ステートレスで状態を維持する仕組み〜

Cookieのやりとり
Webサーバーへ接続してきたWebブラウザに対して、コンテンツなどと一緒にWebブラウザに保存してもらいたい情報をCookieとして送る。
例:ショッピングサイト)
①接続してきたWebブラウザを識別するための情報をCookieとして送る
Cookieを受け取ったWebブラウザはそれを保存しておく
③(次にWebサーバーに接続する際に)保存しておいたCookieを送信する
④Webサーバーは接続してきた相手を識別できる
 
メッセージヘッダーの利用
Cookieの送信にはメッセージヘッダーが利用される。
「Set-Cookie」ヘッダー:オプションでCookieの有効期限を設定したり、またHTTPSのみ利用してCookieを送信する設定をしたりできる
 
WebサーバーはHTTPレスポンスに「Set-Cookie」ヘッダーを含めることで送信できる。
WebブラウザはHTTPリクエストにCookie」ヘッダーを含めることで送信できる。
 
セッションCookie
セッションCookie有効期間が設定されていないCookieWebブラウザが閉じられると同時に削除される。
          セキュリティ上の観点からショッピングサイトなどで使われる。
有効期間が設定されているCookieWebブラウザを閉じても削除されない。有効期限が来るまでWebブラウザ上に残る。

14.セッション〜一連の処理の流れを管理する〜
セッションWebブラウザとWebサーバーのやりとりにおいて、一連の関連性のある処理の流れ。
例:ショッピングサイト)
①商品を選ぶ
②買い物カゴに入れる
③カゴの中身を確認する
④商品を購入する
 
セッションの管理
Webサーバーへのアクセスは1台のWebブラウザだけではなく、多数のWebブラウザから行われる。
あるWebブラウザからの処理を関連性のある一連の処理(=セッション)として扱いたい場合は、Cookieを用いてセッションを管理できる。
セッションID:セッション管理においてWebブラウザを識別するための情報
 
セッションIDのやりとり
Cookieを用いる方法が一般的。
 
15.URI〜あらゆるリソースを識別する記述方法〜
URI:(Uniform Resource Identifier)。情報やデータといったリソースを識別するための記述方法。コンピューターが扱うリソースに限らず、人や会社、書籍など、あらゆるリソースを示すことができる
URL:(Uniform Resource Locator)。リソースが存在する場所と取得する方法を示すもの。Webサイトの場所を示す際に使われる
URN:(Uniform Resource Name)。場所は問わずにリソースの名前を示すもの。刊行された書籍を一意に特定し識別するためのISBNコードなどを使ってURNを特定可能
 
リクエスURI
HTTPにおいても、リソースを特定するためにURIが利用されている。
HTTPリクエストの場合、URIはリクエスト行のメソッドに続いて記述され、「リクエスURI」とも呼ばれる。
絶対URI形式URIをすべて含める
相対URI形式URIの一部を含める
 
パーセントエンコーディング
パーセントエンコーディング:予約文字(ユーザーが使用できない文字列。#など)でも非予約文字でもない文字をURIで利用する場合に用いる変換方法。例)半角スペースは「%20」
 
COLUMN WEBサイトの「HTTPS」化がとまらない?
近年、HTTPSを導入しているWebサイトが増えてきた。
従来→ショッッピングサイト、フォームなどで個人情報を送信する企業サイト の一部の重要ページくらい
近年→Webサイト全体をHTTPSで「常時SSL」化しているWebサイトが増加
なぜ?
利用者の接続環境の変化
Wi-Fi無線LAN)に対応したスマートフォンなどの普及により、カフェや公共施設に設置されたWi-Fi環境からの接続が増えてきた。
Wi-Fi環境は便利な反面、セキュリティ対策が万全ではないところが多いため、Webサイトの運営側とすればHTTPSを導入することで利用者に安全性や信頼性をアピールできる。
Webサービスを提供する各社もHTTPSを推進している。
GoogleHTTPSを導入しているWebサイトの検索順位を優遇。将来的には全てのHTTPページに警告を出すことを予告。
HTTPSでもリスクは存在する。利用者側もセキュリティ意識を持つ必要がある。

Chapter3 HTTPでやりとりする仕組み(9〜12)

#09 HTTP/2での改良点

 
HTTP/2はストリームの多重化の他に以下の改良点がある。
 
##バイナリ形式の利用
HTTP/1.1 以前・・・HTTPリクエストやHTTPレスポンスのやり取りがテキスト形式
HTTP/2.0 以降・・・HTTPリクエストやHTTPレスポンスのやり取りがバイナリ形式
バイナリ形式・・・コンピューターがわかるデータの形式
→変換にかかる時間とWebブラウザ、Webサーバーの負担が減った。
 
##へッダーの圧縮
HTTP/2.0 以降・・・ヘッダー情報も圧縮することが可能
また、HTTPリクエストやHTTPレスポンスのやり取りで重複するデータの差分だけを送るHPACKと呼ばれる圧縮方式を利用できることも可能
 
##サーバープッシュ
通常はWebブラウザからHTTPリクエストに応じて、Webサーバーが必要なコンテンツを転送するが、HTTP/2.0 ではHTTPリクエストの情報を元にWebサーバー側で必要なファイルを判断して、WebブラウザからHTTPリクエストなしに、事前にWebサーバーから転送する。
 
 
#10 HTTPSの仕組み
HTTPSは、HTTP over SSL/TLSの略
通信において、暗号化方式であるSSL(Secure Sockets Layer)、TLS(Transport Layer Security)を利用する
 
##安全性を確保する仕組み
・盗聴防止
万が一傍受されても内容を解読させないためにデータを暗号化して送る
 
・改ざん防止
ネットバイキングにおいて振込先情報が書き換えられてしますと行ったデータの改ざん対策として「メッセージダイジェスト」が利用される。
データ送受信時にハッシュ値を比較して改ざんを検知できます。
 
・なりすまし防止(Webサイト運用元の確認)
Webサーバーに「SSL サーバー証明書」と呼ばれる電子証明書を配置しておき、
接続じに検証することにより、Webサイトを運営する会社の身元を確認できる。
 
 
#11 HTTPSのやり取り
##SSL/TLSハンドシェイク
TCPコネクションが確率された後に通信を行う前に大きく4つのフェーズのやり取りを行う必要がある。
1 暗号化方式の決定
暗号化方式の決定の他に、HTTPSで利用されるSSL、あるいはTLSのバージョンや改ざん防止で利用されるメッセージダイジェストの方式も決定します。
 
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サーバーからの応答
 
02 HTTPリクエスト/HTTPレスポンス〜リクエストとレスポンスの違い〜
 
●HTTPリクエス
HTTPリクエストは、「リクエスト行」「メッセージヘッダー」「メッセージボディ」の3つに分けることができる
 
リクエスト行……Webサーバーに対してどのような処理をしてほしいかというリクエストの要求内容を記述している。「情報を取得したい」「情報を送信したい」といった情報をWebサーバーへ伝える
 
メッセージヘッダー……Webブラウザの種類やバージョン、対応するデータ形式など付加的な情報を記述
 
メッセージボディ……Webページ内のフォーム欄などに入力したテキストデータなどをWebサーバーに送る
 
●HTTPレスポンス
WebブラウザからHTTPリクエストを受け取ったWebサーバーは、リクエストを処理して、その結果をHTTPレスポンスとして応答する
 
HTTPレスポンスは、「ステータス行」「メッセージヘッダー」「メッセージボディ」の3つに分けることができる
 
ステータス行……Webブラウザから受け取ったHTTPリクエストに対してWebサーバー内での処理の結果を伝える
 
メッセージヘッダー……Webサーバーの種類や、送信するデータの形式などの付加的な情報を記述
 
メッセージボディ……WebブラウザからリクエストされたHTMLなどのデータが格納される
 
HTMLのデータを受け取ったWebブラウザは内容を解析し、受け取ったHTML内に画像などのリンクが存在する場合は、再度WebサーバーへHTTPリクエストを送信する
 
HTTPリクエストとHTTPレスポンスのやりとりを繰り返し行うことで、Webサイトを閲覧できる
 
03 HTTPメソッド〜Webサーバーへの要求の種類〜
HTTPメソッド……HTTPリクエスト内に含まれていて、「GET」「POST」など目的別に複数定義されている。HTTPリクエストを用いてWebサーバーに具体的な要求内容を伝えている
●「GET」と「POST」の違い
データの送信方法が異なる
GETメソッド……URLの後ろに送りたいデータを付与して送る
POSTメソッド……HTTPリクエスト内のメッセージボディ内にデータを含めて送る
 
 
 
 
04 ステータスコード〜応答結果の種類を表す数字〜
ステータスコード……HTTPレスポンス内に含まれる、HTTPリクエストに対するWebサーバー内での処理結果。3桁の数字からなる
 
5つに分類される
・100番台……HTTPリクエストを処理中であることを通知
・200番台……HTTPリクエストに対して、正常に処理した場合に通知
・300番台……HTTPリクエストに対して、転送処理などのWebブラウザ側で追加の処理が必要であることを通知
・400番台……クライアント(Webブラウザ)のエラーであることを通知
・500番台……Webサーバーのエラーであることを通知
 
担当:やし

2 Webとネットワーク技術(P42〜)

2-5 URLとドメイン

#URL(Uniform Resource Locator)

 サイトを示す場所、データやファイルを取得方法を示す
 http:// スキーム名・・・プロトコルを指定する
    example.com: ドメイン名・・・接続先のサーバーを指定する。IPアドレスで指定することも可能
    80/ ポート番号・・・接続先のサーバーポート番号を指定する。省略可能。
             省略するならば、プロトコルにあった番号を指定される
    test.html パス名・・・接続先のサーバー上のディレクトリやファイルを指定する
 
 IPアドレスを変えたもの(わかりにくいため)
 ドメイン名とホスト名の違いを以下に記載
 ドメイン名・・・ネットワークを特定するための文字列
 ホスト名・・・ネットワーク上のコンピューターに付ける識別用の文字列
 
06 DNS
#DNS(Domain Name System)
 IPアドレスドメインを変換する仕組み
 接続するときは必ずDNSサーバーへIPアドレスの問い合わせを行っている
 
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
HTTP:HyperText Transfer Protocol。世界共通のハイパーテキストのやりとりの手順。
 
TCP/IPとは
TCP/IPTransmission Control Protocol / Internet Protocol の略。
    インターネットにおけるさまざまなサービスを実現するためのプロトコルの集まり。
    その中でも中心的な役割を果たすプロトコルTCPとIP
 
●HTTPもTCP/IPの一部
TCP/IPは役割ごとに階層化されている。HTTPもTCP/IPの一部。アプリケーション同士のやり取りを行う層のプロトコルの中に含まれている。
 
TCP/IPは役割ごとに4つの階層に分かれている
 
レイヤー4.アプリケーション層
レイヤー2.インターネット層
レイヤー1.ネットワークインターフェース層
 
レイヤーごとの役割に応じたプロトコルが各レイヤーで利用されている。
4つの階層のプロトコルが連携することでインターネットでの通信が可能となる
 
●アプリケーション層の機能
Webブラウザやメールソフトなどのアプリケーションごとのやり取りを規定
 
TCPUDP
UDP:User Datagram Protocolの略
アプリケーション層のやりとりに応じて実際にデータの転送処理を行っているのがTCPUDP
 
04 IPアドレスとポート番号
IPアドレス:インターネットに接続されたコンピューターを特定し、データの行先を管理するために利用されている識別番号
      同じIPアドレスは存在しない
      住所
 
●ポート番号
ポート番号:コンピューターの内部にある各サービスを識別するための番号
      部屋番号
 
IPアドレスは接続したいコンピューターを指定できるが、コンピューターが提供するサービスまでは指定できない
IPアドレスとポート番号を指定することで特定のコンピューターの特定のサービスを受けることができる
 
●Webサーバーは80番
ポート番号は「0〜65535」までの数字で、範囲によって用途が決められている
Webサーバー(HTTP)のポート番号は80番
 
担当:やし