Webの基礎知識 - HTML5 Professional Level1

/ HTML5/CSS3/jQuery / Comment[0]

HTML5プロフェッショナル試験レベル1では、HTMLに関する知識だけでなく、Webに関連した知識も問われます。
公式が公開している出題範囲では知識問題という表記なのでそれほど詳細には突っ込まれないでしょう。
ですが、重要度は★7と高いのでしっかりと抑えておきたいところです。
http://html5exam.jp/outline/objectives_lv1.html

この記事では上記リンクの「Webの基礎知識」の範囲をメモしておきます。

  1. HTTP,HTTPSプロトコル
  2. HTMLの書式
  3. ネットワークサーバ関連技術の概要
  4. Web関連技術の概要

1.1.1 HTTP,HTTPSプロトコル

望まれるスキル:
HTTPのコンテンツ作成やサイト全体の設計を行うために必要なHTTPおよびHTTPSプロトコルに関する知識を有している。ブラウザでアクセスした時に帰ってくるエラーコードの意味を理解できて問題解決のヒントとすることができる。

HTTPとはHyperText Transfer Protocolの略で、Webブラウザとサーバ間でのコンテンツの送受信に用いられるプロトコルです。デフォルトのポートは80番ですが変更可能です。HTTPS(HyperText Transfer Protocol Secure)はSSL/TLSプロトコルによって提供されるセキュアな回線上で行うHTTP通信のことをいいます。デフォルトポートは443番です。

HTTP通信でサーバとやりとりする際に使用される独自の文言をリクエストメソッドといいます。
リクエストメソッドには主に以下があります。

  • GET コンテンツを取得
  • POST データを送信
  • HEAD ヘッダフィールドを取得
  • PUT URIにリソースを保存
  • DELETE URIのリソースを削除

GET

HTTPサーバからコンテンツを取得するにはGETを使います。
GETメソッドはHTTPにおいて最も基本的なリクエストメソッドです。
以下はncコマンドによるHTTP通信の例です。

$ nc 10.0.1.1 80
GET / HTTP/1.0(Enter2回)

HTTP/1.1 200 OK
Date: Thu, 02 Oct 2014 07:54:57 GMT
Server: Apache/2.4.7 (Ubuntu)
Last-Modified: Sat, 20 Sep 2014 13:58:25 GMT
ETag: "c7a-5037f9c900c83"
Accept-Ranges: bytes
Content-Length: 3194
Vary: Accept-Encoding
Connection: close
Content-Type: text/html

<html>
<head>
<style>
* {margin:0;padding:0;}
.clearfix { clear: both; }
body { background-color: #000; line-height: 1.5}
:

HEAD

ヘッダフィールドのみを取得するメソッドです。Webページのコンテンツ部分を取得することなくページが存在するか否か、サーバ情報の状態、ページの更新日などを取得することができます。

$ nc 10.0.1.1 80
HEAD / HTTP/1.0

HTTP/1.1 200 OK
Date: Thu, 02 Oct 2014 10:41:29 GMT
Server: Apache/2.4.7 (Ubuntu)
Last-Modified: Sat, 20 Sep 2014 13:58:25 GMT
ETag: "c7a-5037f9c900c83"
Accept-Ranges: bytes
Content-Length: 3194
Vary: Accept-Encoding
Connection: close
Content-Type: text/html

主なヘッダフィールドは以下の通りです。

Host要求しているホスト名
Connection持続接続を制御する指示子
Cache-Controlキャッシュを制御する指示子
Content-Languageコンテンツの言語
User-Agentクライアントのユーザエージェント
Accept-Encodingクライアントの受け入れ可能なエンコード方式
Accept-Languageクライアントの受け入れ可能な言語
Authorization認証情報
Referer参照元
Locationリソースの場所
Set-Cookieクッキーをセット
Cookieクッキーを送信

HTTPステータスコード

200 OK
リクエストに成功したことを示しています。
301 Moved Permanently
リソースが恒久的に移動したことを示しています。
304 Not Modified
リソースが更新されていないことを示しています。
307 Temporary Redirect
リソースが一時的に移動していることを示しています。
400 Bad Request
不正なリクエストであることを示しています。許可されていないメソッドを使用したり、リクエストのスペルミスなどでこのレスポンスが帰ってきます。
401 Unauthorized
認証されていないことを示しています。Basic,Digest認証がかかっているURLで認証をキャンセルした場合などにこのレスポンスが帰ってきます。
403 Forbidden
アクセス権が無いことを示しています。意図に反してこのステータスが帰る場合はパーミッションを間違えている場合が多いです。
404 Not Found
リソースが見つからない
408 Request Timeout
リクエストのタイムアウト
500 Internal Server Error
サーバの内部エラー
502 Bad Gateway
不正なゲートウェイ
503 Service Unabailable
サービスが一時的に利用不可であることを示しています。高負荷時にこのレスポンスが帰ることが多いです。

リダイレクトとはアクセスしたページから自動的に他のページに飛ばすことです。
ステータスコードを300代に指定し、Locationヘッダフィールドで飛ばす先のURLを指定します。

HTTP/1.0 302 Found
Cache-Control: private
Content-Type: text/html; charset=UTF-8
Location: http://www.google.co.jp/?gfe_rd=cr&ei=1zctVJXDFeeN8Qfnj4HoCA
Content-Length: 261
Date: Thu, 02 Oct 2014 11:32:39 GMT
Server: GFE/2.0
Alternate-Protocol: 80:quic,p=0.01

認証

HTTPでは認証方法としてBasic認証とDigest認証があります。
Basic認証は「ユーザ名:パスワード」をbase64エンコードしてリクエストに付加します。
Digest認証ではユーザ名とパスワードをmd5ハッシュ化して送ることで盗聴による情報漏洩を防ぎます。

URLとURIの違い

URLはUniform Resource Locatorの略で、インターネット上のリソースの場所を指す文字列です。
http://html5exam.jp/outline/objectives_lv1.html
URIはUniform Resource Identifierの略で「Identifier:識別子」つまり、インターネットに限らずリソースの場所を示すための文字列であり、URLよりも広義的な意味合いを持ちます。

SSL/TLS

Secure Sockets Layer/Transport Layer Securityの略で、暗号化通信を実現するプロトコルです。
TLSが正式名称ですが、かつてはSSLと呼ばれていたため、どちらでも意味は通じます。
認証局による電子署名による認証(公開鍵暗号)と共有鍵暗号方式による暗号化を組み合わせたものです。
アプリケーションに依存しないため、HTTPS以外でも利用されます。

ネットワークサーバ関連技術の概要

望まれるスキル:
Webサイトを構築するにあたって、テスト環境の構築や、コンテンツが正しく表示されない場合のトラブルシューティングができるだけのネットワークやサーバに関する知識を有している。 CMSなどの管理システムを構築し、コンテンツを正しく表示させるために必要となるネットワークやサーバに関する知識を有している。 Webサイトを運営する際の攻撃などの脅威から守る方法についての対策の概要を理解できている。
IP(Internet Protocol)
OSI参照モデルの第3層ネットワーク層に位置する通信プロトコルです。
IPアドレスに基づく送信元から送信先へデータグラムを送付する役割を持ちます。
データグラムとはネットワーク上でやり取りされるデータのことを指します。パケットと意味合いは近いですが、パケットの場合はデータの再送付やエラー検知などを備えた通信データに対して言う方がしっくりきます。
IPアドレス
IPアドレスには内部ネットワーク専用のプライベートIPアドレスと公衆ネットワーク上で使うグローバルIPアドレスの2つがあります。
プライベートIPアドレスに関しては、予めRFCで予約されています。 クラスA:10.0.0.0~10.255.255.255 クラスB:172.16.0.0~172.31.255.255 クラスC:192.168.0.0~192.168.255.255
ループバックアドレス
自分を指すアドレスで127.0.0.1~127.255.255.254が予約されています。
TCP
Transmission Control Protocolの略でOSI参照モデルのトランスポート層に位置する通信プロトコルです。
送信元・送信先ポートやシーケンス番号、チェックサムなどをTCPヘッダに付加してIPへ送ります。TCPは再送制御やエラー訂正機能を持ち、信頼性の高い通信が可能です。
UDP
User Datagram Protocolの略でTCPと同じく送信元・送信先ポートをヘッダに付加してデータを送付します。
しかし、再送制御やエラー訂正が無いため信頼性に欠けるプロトコルです。TCPと比べ作業が少ないため速度を求められるストリーミングやNTPやDNSなどで利用されます。
UTM(総合脅威管理)
総合脅威管理 UTM:Unified Threat Managementはウイルスやハッキングなどの脅威からネットワークを効率的かつ包括的に保護する管理手法のことをいいます。

Web関連技術の概要

望まれるスキル:
動的なWebコンテンツを作成するプロジェクトにおいて、どのような技術や対策を行っているのかを理解し、プロジェクト内で円滑にコミュニケーションできるために必要な知識を有している。Webコンテンツへのアクセスを伸ばす方法として、一般的に利用されているものについて説明する事ができる。
セッション
セッションとはネットワーク上の通信においてある一定期間の一連の通信のことを指します。
HTTPにはセッションの仕組みを持っていないため、HTTP Cookieなどの仕組みを用いてセッションIDなどを付与して通信します。
Javascript,Ajax
JavascriptはWebページで利用されているオブジェクト指向プログラミング言語です。
JavaとオーストリアはJavascriptとオーストラリアほど違います。
Javascriptの仕様はEcma InternationalによりECMAScriptとして標準化されており、Javascriptはその一つとなっています。
Ajax(Asynchronous JavaScript + XML)は、ブラウザ内で非同期通信することでページ遷移を行わずに通信結果に応じて動的にページを変化させる手法です。
画像ファイルフォーマット
BMP:圧縮無しの形式です。Windowsが標準でサポートする画像ファイル形式でビットマップと呼ばれます。
GIF:256色以下の可逆圧縮の形式です。インターレースをサポートしています。
PNG:フルカラー1677万色の可逆圧縮方式の形式です。gifの特許問題中にgifに変わる形式として生まれました。インターレースに対応しています。
JPEG:色数の多い画像で高い圧縮率を持つ非可逆圧縮方式の形式です。プログレッシブJPEGはインターレースのように最初に荒い画像を表示し、徐々に鮮明に表示される方式です。プログレッシブではないJPEGをベースラインJPEGと呼びます。
MVCアーキテクチャ
Model View Controllerはソフトウェアの設計手法の一つです。プログラムを以下の3要素に明確に分割することによりプログラムの構造がわかりやすくします。
View:ユーザインターフェイス
Model:データやロジック
Controller:上2つを制御
CMS
Contents Management SystemはWebコンテンツとなる画像やテキストなどを管理し運用するソフトウェアです。
代表的なCMSとしてWordPressなどがあります。
Webにおける主な攻撃手法
SQLインジェクション:SQLやOSコマンドなどを扱う部分などの脆弱性を突き、攻撃者の任意のSQL文を実行する攻撃
クロスサイトスクリプティング:ユーザの入力値を元に動的にページを生成している場合、攻撃者が悪意あるスクリプトを埋め込む
CSRFクロスサイトリクエストフォージェリ:外部からのリクエストによってサイト上で何らかの操作を行わせる攻撃手法
ディレクトリトラバーサル:ファイルを扱う操作などで「..」などの親ディレクトリを指す文字を含ませ通常ではアクセスできないディレクトリにアクセスする攻撃手法
HTTPヘッダインジェクション:任意ヘッダを挿入することでクッキーの置き換えなど不正な動作を行わせる攻撃手法
DOM
Document Object Modelの略でHTMLやXML文書をアプリケーションから扱うためのAPIです。
SOAP
オブジェクト間でのメッセージ交換やRPCのためのプロトコルです。メッセージはXMLでやり取りされます。
OGP
Open Graph Protocolの略で主にSNSなどで対象のWebページがどのような内容かを記述する仕様です。
meta要素のproperty属性にog:から始まる各種情報を記述し、content属性で内容を記述します。
ROI
Return On Investmentの略で投資した資本に対する利益の割合のことで投資対効果などとも呼ばれます。
関連記事

コメント

:
:
:
:
:
管理人のみ表示を許可