HTTP

導入

URLの「http」に「s」が付いているかいないかというのは、ちょっとした違いのように思われるかもしれませんが、実はかなり重要な違いなんです。

このページを見ていただいている方の中には「http」より「https」の方がセキュリティ的に安全だという事は聞いた事があるけど、具体的にどう安全なのかはちゃんと理解できていないという方もいるでしょう。「http」と「https」の違いを正しく理解すれば、最近話題のフィッシングサイトやなりすましサイトによるリスクを減らすこともできます。

そこで今回はホームページのURLにおける「http」と「https」の違いと、ブラウザでサーバ証明書を確認する方法について紹介します。


Hypertext Transfer Protocolハイパーテキスト・トランスファー・プロトコル、略称 HTTP)とは、WebブラウザWebサーバと通信する際に主として使用する通信プロトコルであり、インターネット・プロトコル・スイートのメンバである。HTMLなどのテキストによって記述されたWebページ等のコンテンツの送受信に用いられる。


インターネットでWebサイトを見ているとURLが「http」から始まるものと「https」から始まるものがあります。何か違いはあるのでしょうか?


HTTPを一言で言うと
「TCP/IPをベースとしたプロトコル」
と説明されることが多い。
この一言が意味するところを理解する。


通信プロトコルだよ

ホームページのファイルを受け渡しするときに使うよ

「HyperText Transfer Protocol」の略だよ


HTTPとは、WebサーバとWebクライアントの間でデータの送受信を行うために用いられるプロトコル(通信規約)。Webページを構成するHTMLファイルや、ページに関連付けられたスタイルシートスクリプト、画像、音声、動画などのファイルを、データ形式などのメタ情報を含めてやり取りすることができる。







とは

HTTPは、 「Hyper Text Transfer Protocol」の略です。 今やインターネットの代名詞となったWWW(World Wide Web)上でWebサーバとクライアントが、 HTML(Hyper Text Markup Language = Webページを記述するための言語)で書かれた文書などの情報をやりとりする時に使われる通信手順(プロトコル)を意味します。 CERN(欧州原子核研究機構)に在籍していたティム・バーナーズ・リー氏によって、 1990年前後に開発されました。 基本的には普通のテキストデータを使い、 ブラウザなどのクライアントがWebサーバに対してget、putといったコマンドを送ると、 それに応じた結果がサーバから送られてきます。 送られてきた結果であるHTML、 JPEGといったデータをきれいに成形して見せるのは、 Webブラウザの仕事になっています。 とはいえ、テキストしか表示できないWebブラウザも存在しますし、 必ずしも全てのWebブラウザで見た目が同じになることが保証されているわけではありません。

特徴としては、原則としてステートレス(= stateless 前回の状態は非保持の意)、 つまり1回コマンドを送ったら1回結果が返ってきてそれで終わり、ということが挙げられます。 利点としては、プログラムがシンプルになることですが、 逆に欠点として複数回のやりとりを追跡できないことにもなります。 このため買い物サイトなどでは、 別途cookieなどの技術を組み合わせて使うことで複数回のやりとりを追跡しています。 また、HTTPではデータが暗号化されていないため、 通信経路のどこかで内容を知られる可能性があります。 第三者に知られたくない情報をやりとりする時は、別途暗号化を行うか、 暗号化されたHTTPSという通信手順を使う必要があります。


HTTPとは「Hyper Text Transfer Protocol(ハイパーテキストトランスファープロトコル)」の事です。ホームページのデータは文字だけでなく画像や動画などがあります。これらのデータをサーバとクライアントの間で通信するときの通信規約(プロトコル)がHTTPです。

通信規約というと、何やら難しいことのように思えますが、ようするにホームページを構成しているhtmlファイルや画像ファイルなどの「ホームページの部品」を自分のパソコンにデータとしてダウンロードする手順のことを言います。

私たちはインターネットをパソコンで利用したり、スマートフォンで利用したりしています。さらにパソコンと一言でいってもOSはWindowsやMac、そしてLinuxなど様々です。インターネットを利用している環境によってホームページのデータのやり取りをする方法が異なっていたら不便です。そこでHTTPという共通の通信規約を定めることで、インターネットを利用する環境が異なっていても、同じ手順でホームページのデータをやり取りすることができるようにしたのです。


HTML (HyperText Markup Language) や XML (Extensible Markup Language) によって記述されたハイパーテキストの転送を主な目的としているが、それ以外にも、バイナリ形式の画像、音声を含め、様々なデータを扱うことが可能である。トランスポート・プロトコルとしてTCPを使用する。

HTTPはリクエスト-レスポンス型のプロトコルであり、クライアントがサーバにリクエストメッセージを送信する。 基本的な考え方は非常に単純で、「何を」「どうして」欲しいのかを伝える。URLが「何を」、メソッドが「どうして」に当たる。 サーバはこれにレスポンスメッセージを返し、基本的にこの時点で初期状態に戻る。つまり、サーバはクライアントの状態を保存しない。

World Wide WebにおけるWebページなどのリソースは、Uniform Resource Identifierによって指定される。HTTP を使用してリソースにアクセスするときは、http: が先頭についた URL を使用する。下にURL の例を挙げる。

http://www.example.co.jp/~test/samples/index.html

最初のHTTP/0.9ではURLを指定してコンテントをダウンロードするのみの簡単なやりとりであったが、HTTP/1.0で改良された。

  • リクエストのセマンティクスを指定する、様々なリクエストメソッドが追加された。POSTを使って、アップロード(クライアントからサーバへのデータの転送)が可能になった。
  • NNTPSMTPのような各種ヘッダが定義され、HTTP cookieなどの利用が可能になった。

HTTP/1.1では複数データを効率よく転送するための持続的接続や、プロキシの利用等も想定した仕様になった。

このほかの点を箇条書きで示す。


httpは「HyperText Transfer Protocol(ハイパーテキスト トランスファー プロトコル)の略で、データ通信の際に通信内容を暗号化しない方式です。
そのため、http通信を使ったWebサイトでデータの入力や発信を行なうと悪意を持った第三者に通信内容を知られてしまう可能性があります。
カード番号や個人情報などの重要な情報はhttp通信のWebサイトでは入力をしないことをおすすめします。
※http通信のWebサイトを閲覧するだけで、個人情報が漏えいすることはありません。


Hypertext Transfer Protocol (HTTP) は HTML などのハイパーメディア文書を転送するためのアプリケーション層プロトコルです。このプロトコルはウェブブラウザー(クライアント)とウェブサーバー間の通信を目的として設計されていますが、他の用途でも使用されることがあります。 HTTP は旧来のクライアント・サーバーモデルに則っており、クライアントはサーバーにリクエストを送信するためにポートを開き、サーバー側からのレスポンスが返ってくるまで待機します。 HTTP はいわゆるステートレスプロトコルであり、つまりサーバーは二つのリクエスト間で何もデータを保持しません。 HTTP は多くの場合 TCP/IP 層上の通信で使用されますが、任意の信頼性があるトランスポート層、すなわち、 UDP のように知らぬ間にメッセージが失われるようなことがないプロトコルでも使用されることがあります。 RUDP — UDP に信頼性を追加したもの — も代替用として適合します。


HTTP は、 HTML 文書などのリソースを取り出すことを可能にするプロトコルです。これはウェブにおけるデータ交換の基礎をなし、クライアントサーバープロトコルであり、リクエストは受け取り者 (一般にはウェブブラウザー) が生成します。文書全体は、テキスト、レイアウトの定義、画像、動画、スクリプトなど、取り込まれたさまざまなサブ文書から再構成されます。

ウェブの文書は複数のリソースの組み合わせ

クライアントとサーバーは、 (データの流れとは対照的に) 個々のメッセージを交換することによって通信します。クライアント (通常はウェブブラウザー) が送信するメッセージはリクエストと呼ばれます。また、サーバーが回答として送信するメッセージはレスポンスと呼ばれます。

HTTP はアプリケーション層のプロトコルであり、 TCP (トランスポート層) や IP (ネットワーク層) やプレゼンテーション層以下の上の階層に当たります。1990 年代初頭に設計された HTTP は、時間をかけて進化した拡張可能なプロトコルです。 HTTP は、 TCP または TLS (暗号化された TCP 接続) を使用して送信されるアプリケーション層のプロトコルですが、理論上は信頼性のある任意のトランスポート層プロトコルを使用できます。HTTP は拡張性があるため、ハイパーテキスト文書だけでなく画像や動画の取り込みや、 HTML フォームの入力結果などをクライアントからサーバーへ送信することもできます。また、リクエストに応じてウェブページを更新するために、文書の一部を取り込むこともできます。


一言で言うなら、TCP/IPをベースとしたプロトコル
htmlやxmlに限らず静止画、動画、javascrpitプログラムなど、コンピューターで扱えるデータであればなんでも転送できるWebの基盤となるプロトコル
webエンジニアがwebサービスを作って通信するとなった場合、ほとんどの場合HTTPを使って通信するよう実装することになる。


HTTPとは

通信するときに使うお約束事(通信プロトコル)のひとつ
であり

インターネットをするときに使われるお約束事
です。
もう少し正確に書くと

ホームページのファイルとかを受け渡しするときに使うお約束事
です。


HTTPはクライアントから要求(HTTPリクエスト)を送り、サーバが応答(HTTPレスポンス)を返すプル型(リクエスト/レスポンス型)の通信を基本としており、WebブラウザやWebクローラなどのクライアントから送信する要求の形式や、Webサーバからの応答の形式などを定めている。HTTPリクエストおよびレスポンスは要求や返答の内容、資源の種類や形式などの情報、および関連する情報を記述したヘッダ部と、送受信する資源(ファイルなど)の本体であるボディ部で構成される。ボディ部は基本的にはレスポンスに存在するが、クライアント側からデータを送信する際にはリクエストにも付加される。

HTTPは下位(トランスポート層)のプロトコルとして標準ではTCPを利用することが多いが、SSL/TLSを用いて暗号化されて伝送されることもある。この通信手順は「HTTP over SSL/TLS」と呼ばれ、URL/URIスキーム名として通常の「http:」に代えて「https:」を用いる。


WWWブラウザーなどのウェブクライアント(データを受信する側)とウェブサーバー(データを送信する側)の間で、HTMLファイルなどのさまざまなデータをやりとりするために使用するプロトコル(通信規約)のこと。ハイパーテキスト転送プロトコル(HyperText Transfer Protocol)の略。WWWブラウザーなどでインターネット上の情報を閲覧する場合、クライアントは取得したいデータのある場所を「http://」ではじまるURLで指定してリクエスト(要求)を送信する。それに対し、該当するウェブサーバーは応答し、サーバーにあるデータをクライアントへ転送する約束になっている。また、クライアントとウェブサーバー間で送受信される情報の機密性や安全性を高めたい場合には、SSLを導入したHTTPS(HTTP over SSL)というプロトコルもあり、「https://」ではじまるURLをもつ。

WWWでハイパーテキスト文書にリンクするためのプロトコル。先立つものとして、ウェブサイトのアドレスなど(例えば、http://marketplace.comなど)

HTML文書や画像などのデータをWebサーバーとWebブラウザー間でやり取りするために使われるプロトコル。HTTPでは、データを受信する側(クライアント)が要求をサーバーに伝え、それに対してサーバーが応答する。たとえば、ユーザーがURLを使って接続したいWebサーバーと表示したいWebページを指定すると、Webブラウザーは指定されたサーバーに接続して、Webページを取得するためのコマンド(GETメソッド)を送信する。サーバー上に該当するファイルがあれば、その結果をHTML(HyperText Markup Language)などのファイルとしてWebサーバーからWebブラウザーに転送する。HTTPでは、データを受信するときに使う「GET」のほかに、データを送信する「PUT」「POST」などのメソッドが用意されている。Webブラウザーは、要求時にこうしたメソッドを使ってサーバーに要求を伝える。

HyperText Transfer Protocol(ハイパーテキスト転送プロトコル)のウェブブラウザーウェブサーバーから情報を取得する際に使用するプロトコルのこと。取得したい情報の所在をURL(一般には「ウェブアドレス」などとも)で指定することによって、該当するサーバーに情報を返送させる。URLの表記が「http://」で始まるのは、情報をHTTPで取得するという宣言である。また、ネット決済などでは、表記が「https://」となることがあるが、これは「https」というプロトコルを使用するという意味ではなく、「暗号化した情報をHTTPで送受信する」という意味である。末尾の「S」は「Secure」で、暗号化には通常、SSLという規格が用いられる。

インターネットなどのコンピューターネットワークにおいて、ウェブサーバーウェブブラウザーの間でデータ転送するためのプロトコルHTMLで記述されたハイパーテキストのほか、画像・音声・動画などのデータ転送に用いられる。◇「hypertext transfer protocol」から。

ブラウザとウェブサーバーとの間でデータを送受信するためのプロトコルです。URLの最初に付く「http://」は、「通信にHTTPを使う」という意味です。普段はまったく意識する必要がありません。
⇨URL、ウェブサーバー、
ブラウザ、プロトコル

《hypertext transfer protocol》インターネット上でのデータ転送のためのプロトコル。WWWサーバーブラウザーHTMLファイルや画像、音声などのデータの送受信に用いられる。ハイパーテキスト転送プロトコル。



H2候補

まとめ

※ このページは現在準備中です。記述内容は、以下の参考リンクより抜粋したものです。

参考

  • https://www.nic.ad.jp/ja/basics/terms/http.html#:~:text=HTTP%E3%81%AF%E3%80%81%20%E3%80%8CHyper%20Text%20Transfer%20Protocol%E3%80%8D%E3%81%AE%E7%95%A5%E3%81%A7%E3%81%99%E3%80%82
  • https://cybersecurity-jp.com/security-measures/25772
  • https://ja.wikipedia.org/wiki/Hypertext_Transfer_Protocol
  • https://flets-w.com/chienetta/list/2020/10/cb_security26.html
  • https://developer.mozilla.org/ja/docs/Web/HTTP
  • https://developer.mozilla.org/ja/docs/Web/HTTP/Overview#components_of_http-based_systems
  • https://qiita.com/growsic/items/7b0b461303fd1e8995f2
  • https://wa3.i-3-i.info/word165.html
  • https://e-words.jp/w/HTTP.html
  • https://kotobank.jp/word/HTTP-1260

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です