Web技術の基本まとめ

はじめに

プロになるためのWeb技術入門(改訂新版)を読み終えて、Web技術がこれまでどんな歴史を辿って現在のかたちになったのか、全体像と背景を学ぶことができました。
今後の学習の中で立ち返れるように、Webの基本的な技術について整理しておきたいと思います。

Web技術の基本

リクエス

リクエストとは、クライアント(ブラウザ)からサーバへ要求を送ることです。
ユーザーがWebページを表示するためにリンクをクリックしたり、フォームに入力して送信ボタンを押すと、その内容がリクエストとしてサーバへ送信されます。

レスポンス

レスポンスとは、サーバがクライアント(ブラウザ)からのリクエストを受けて応答することです。 サーバでリクエスト内容の処理を行い、処理の結果や成功/失敗などの情報をクライアントへ返します。
クライアントは受け取った情報を元に表示画面の更新などを行います。

プロトコル

プロトコルとは、コンピュータ同士が通信する際の通信手順や規格のことです。
お互いに同じプロトコルを使用することで、データのやり取りが可能となります。
用途に応じてさまざまなプロトコルが用意されていますが、Webページの送受信には主にHTTP(HyperText Transfer Protocol)が使用されています。
現在では、セキュリティの観点からHTTPの通信を暗号化するHTTPSの使用が一般的になっています。

ステートレス

HTTPは多くの人が快適にWebを利用できるよう、シンプルに設計されたプロトコルです。
そのため、ひとつひとつの通信(リクエスト)が独立しているという特徴があり、サーバ側は「状態を保持しない」仕組みになっています。
このような仕組みをステートレス(Stateless)と呼びます。

ステートフル

ステートレスとは反対に、通信の開始と終了が明確であり、その間の一連の通信を識別できるようになっているものをステートフル(Stateful)といいます。
ステートフルなプロトコルでは、あるクライアントとサーバが通信を始めると、そのクライアントからの1回目のリクエストと2回目のリクエストがサーバ側で紐づけられ、通信が終了するまで状態が保持されます。
例えばFTP(ファイル転送用のプロトコル)はステートフルであるという特徴を持っています。

クッキー

HTTPはステートレスなプロトコルであるため、同じクライアントからのリクエストかどうかを識別できないといった問題があります。
それを解決するためにHTTP Cookie(HTTPクッキー)という仕組みを利用します。
クライアントがサーバへリクエストを送ると、サーバがセッションIDなどの識別情報(クッキー)をレスポンスへ追加してクライアントに返します。
クライアントは受け取ったクッキーを保存しておき、次に同じサーバへリクエストを送る際にクッキーを追加して送信します。
そうすることでサーバはどのクライアントからのリクエストかを識別することができるようになります。

ポート番号

データの送信先を指定するにはIPアドレスとポート番号が必要です。
IPアドレスでコンピュータを特定し、ポート番号でその中のアプリケーションを指定することで、通信ができるようになります。
ポートは65,536個あり、0から65535までの番号が振られています。
よく使われる主なプロトコルには、標準で使うべきポート番号(ウェルノウンポート)があらかじめ決められており、特にURLに明示しない場合は標準のポート番号が使用されます。

プロトコル 標準のポート番号
HTTP 80番
HTTPS 443番

開発などで標準とは異なるポート番号を使用する場合は、https://localhost:8080のように、ポート番号(例:8080番)をURLに明示する必要があります。

おわりに

今後も学んだことを振り返りながら、実践に役立てていきたいと思います。