HTTPとは、Hypertext Transfer Protocolと言って、インターネット上のデータにアクセスするための決められたルールのことです。
私たちが何気なく使っているChromeやEdgeも、HTTPを使ってインターネットにアクセスするという動きをしています。
ここでは、HTTPとは何か、どのように使うのか。 WEB系のプログラミングでは必須の知識となる、HTTPを理解していきましょう。
HTTPの基本
ブラウザに「https://www.google.co.jp/」のURLを入力すると、google.co.jpのWEBサーバーにHTTP接続し、URLにあったデータを取得します。(リクエスト)
ブラウザからURLを入力すると、基本的にはhtmlがレスポンスとしてダウンロードされて画面に表示されます。(レスポンス)
HTTPの基本は、URLを使ってリクエストをすると、何らかのレスポンスが返ってくるというシンプルなものです。
WEBアプリケーションで使うために意識すること
HTTPリクエストを行うと、先にはWEBサーバーがいます。WEBサーバーは、nginxや、apacheが使われていることが多いです。
WEBサーバーがリクエストを受け取ると、受け取った内容によって、どんな処理をしてクライアントにレスポンスするのかを決定します。
リクエストの内容はいくつか覚えていただきたいことがあります。
大きく下記の5つの要素によって、PHPアプリケーションは振る舞いを変えます。
リクエストメソッド
GET HEAD POST PUT DELETE OPTIONS PATCHの7種類があります。他にもありますが、他のメソッドは使ったことがないです。ほとんど使うこともないと思います。
興味がある方は、こちらを参照ください。 https://developer.mozilla.org/ja/docs/Web/HTTP/Methods
リクエストヘッダー
リクエストヘッダーは、HTTPリクエストの一部です。*と良く書かれているのを見かけます。 クライアントからWEBサーバーにリクエストする際に、リクエストの内容を補助する情報がリクエストヘッダーには指定します。
Content-Typeや、Content-Lengthなどさまざまなヘッダーがあります。
リクエストボディに合わせたリクエストヘッダーを設定します。
リクエストボディ
リクエストボディは、クライアントからサーバーに送信されるデータ本体です。
リクエストボディには、このようなデータが含まれます。
- フォームデータ
- JSONやXMLなどの構造化されたデータ
- ファイルデータ(バイナリ)
クエリパラメータ
クエリパラメータは、必要なリソースを識別したり、リソースのフィルタリングや、ソートなどの操作をするために使用されることが多いです。
リソースというのは、サーバー内容にある情報全てを指します。DBに保存されたレコードや、htmlやcssなどの実ファイルもリソースです。
クエリパラメータの使い方
https://m-and.co/files/?page=1&sort=asc
パスパラメータ
パスパラメーターは、リソースを特定するために使用します。RESTFul APIやWebアプリケーションでは、リソースをパスパラメーターで指定し、リクエストメソッドの種類によって、どのようにリソースを操作するのかを決定します。
パスパラメータは、URLの一部として使用されます。それに対してクエリパラメータは、URLの末尾に?を付与して使用します。
パスパラメータの使い方
https://m-and.co/files/1/asc
まとめ
Webアプリケーションを構築するためには、HTTPの理解が必ず必要です。これは、PHPでも、PythonやRubyでも同じです。
この記事では、HTTPの基本的なことを紹介しました。まずは、この記事の内容を理解してWebアプリケーションの開発をしていきましょう。