この1分の動画を見てから、記事を読めばより理解が深まるよ!
情報の教科書に出てくる「http」について教えて!
「HTTP」という単語を聞いたことがありますか?これは、インターネット上で情報をやり取りするためのプロトコルの1つで、WebブラウザからWebサーバーへの情報の送信に使用されます。つまり、HTTPを使うことで、インターネット上で情報をやり取りすることができるんですよ。ヒロ君が将来プログラマーを目指すなら、HTTPの基礎知識は必要不可欠です。しっかり勉強して、Webサイトの開発やインターネット上の通信の仕組みを理解することが大切です。一緒にがんばりましょう!
httpって何?
ヒロ:タクミ先生、httpって何?
タクミ:ああ、ヒロ君、分かります。httpは、Webページを表示するために使われるプロトコルの1つです。プロトコルとは、コンピュータ同士が通信するためのルールのようなものです。例えば、郵便で手紙を送る時に約束されたルールがあるように、httpもWebページを送信する時に約束されたルールがあるということです。
ヒロ:そうか、プロトコルというルールがあるのか。httpって、何の略なの?
タクミ:そうですね。”http”は、”Hyper Text Transfer Protocol”の略です。”Hyper Text”というのは、画面上でクリックすることで他のWebページにジャンプできるようになっているテキストのことです。要するに、”http”はテキストを送信するためのルールだということです。分かりましたか?
httpとは何の略称?
ヒロ: タクミ先生、お聞きしたいことがあるんです。httpって何の略称ですか?
タクミ: そうですね、ヒロさん。HTTPというのはHyper Text Transfer Protocolの略で、ウェブページなどをやり取りするための通信のやり方のことです。
ヒロ: なるほど、通信のやり方のことなんですね。でも、それってどうやって使われるんですか?
タクミ: たとえばネットでブラウザーを開いている時、ウェブページを見たいと思ってURLを入力すると、ブラウザーがHTTPを使ってそのページをサーバーから受け取って表示するんです。
ヒロ: へー、そうなんですか。HTTPって便利な技術なんですね。
タクミ: そうですね、ヒロさん。HTTPがなければ、ウェブページを見ることもできないですからね。プログラミングの勉強をするときにはHTTPについてもしっかり触れるようにしてください。
httpの主な役割は何?
ヒロ:タクミ先生、httpって何の略ですか?
タクミ:httpとは、「HyperText Transfer Protocol」の略ですよ。
ヒロ:HyperTextとはどういう意味ですか?
タクミ:例えば、本を読むときに、目次から読みたいページを選んでジャンプすることができますよね。これがハイパーテキストです。httpでは、ブラウザとWebサーバーとの通信方法を定めたルールがあります。ハイパーテキストを転送するためのプロトコルというわけですね。
httpとhttpsの違いは何?
ヒロ:タクミ先生、httpとhttpsの違いは何ですか?
タクミ:うん、いい質問だね!まずは「http」は「ハイパーテキスト転送プロトコル」の略で、インターネットでの情報のやり取りの仕方の一つで、よく使われるんだ。一方、「https」は「httpセキュア」の略で、暗号化された通信をすることができるようにしたものだよ。つまり、httpsの方がより安全に情報をやり取りすることができるってこと!
ヒロ:なるほど、これは暗号とかで情報を守ってくれるっていうことですか?
タクミ:そうだね!例えば、ネット上でパスワードを入力するときなど、情報が外部から見られないようにするために、httpsを使うことが多いよ。暗号化をせずに通信を行うと、第三者に情報を盗まれたり改ざんされたりする危険性があるから、httpsの方がより安心して情報をやり取りできるんだ。
httpのポート番号は何番?
ヒロ:タクミ先生、httpのポート番号は何番ですか?
タクミ:そうですね、ポート番号っていうのは、情報のやり取りをする際に決まっている番号のことなんですよ。例えば、郵便屋さんが荷物を届けるときに、住所を見て家の番号を確認するのと同じように、ポート番号も何番か決めておかないと、情報がどこに届けられているか分からなくなっちゃいますね。で、httpのポート番号は、「80」と決まっているんです。
ヒロ:ポート番号っていろんな番号があるんですか?
タクミ:そうですね、ポート番号は、様々なもので使われていて、特定の用途に割り当てられているんですよ。例えば、FTPのポート番号は「21」、SSHのポート番号は「22」です。いろんなプロトコルやサービスによって、決められているポート番号が違うんですね。
ヒロ:なるほど、ポート番号って大切なんですね。分かりやすく教えていただき、ありがとうございます!
タクミ:どういたしまして、ヒロさんがプログラマーになるのに役立てばいいなと思います。何かわからないことがあったら、また聞いてくださいね。
httpのリクエストとレスポンスには何が含まれる?
ヒロ:先生、httpのリクエストとレスポンスには何が含まれるんですか?
タクミ:うん、いい質問だね。リクエストには、ウェブサーバーに送る要求が含まれるんだ。例えば、ウェブページのURLやフォームに入力したデータなどね。レスポンスには、サーバーから送り返された情報が含まれるよ。例えば、ウェブページのHTMLコードや画像データ、それにHTTPステータスコードとかね。
ヒロ:HTTPステータスコードって何ですか?
タクミ:それね、HTTPリクエストに対するサーバーからの応答の状態を示す3桁の数字のことなんだ。例えば200番台はリクエストが成功したことを示し、400番台や500番台は何らかのエラーが発生したことを示すんだよ。分かりやすいかな?
httpのメソッドにはどのようなものがある?
ヒロ:タクミ先生、httpのメソッドってどんなのがあるんですか?
タクミ先生:httpのメソッドはたくさんありますよ。例えば、GETというメソッドは、Webページにアクセスして、情報を取得するときに使います。POSTというメソッドは、Webサーバに新しいデータを送信するときに使います。
ヒロ:GETとPOSTの違いは何ですか?
タクミ先生:GETは、Webページから情報を取得するために使います。例えば、検索エンジンで「おすすめの本」と検索すると、GETメソッドでその結果が表示されます。一方、POSTは、Webサーバに新しいデータを送信するときに使います。例えば、フォームに名前と住所を入力して送信すると、POSTメソッドでWebサーバに送信されます。
ヒロ:なるほど、GETとPOSTはページの表示とデータの送信に使うんですね。他に何かあるんですか?
タクミ先生:そうですね。PUTというメソッドは、Webサーバに既存のデータを更新するときに使います。DELETEというメソッドは、Webサーバからデータを削除するときに使います。HEADというメソッドは、Webサーバからヘッダ情報だけを取得するときに使います。OPTIONSというメソッドは、Webサーバがどのようなメソッドを許可するかを取得するときに使います。
ヒロ:そうなんですね、PUTとDELETEって初めて聞きました。ありがとうございます、タクミ先生!
タクミ先生:いい質問だったね、ヒロさん。もし何かあったら、いつでも聞いてね!
httpのステータスコードは何?
ヒロ: タクミ先生、httpのステータスコードって何ですか?
タクミ: それは、Webページの読み込みに失敗した時に表示される数字のことだよ。例えば、「404 Not Found」っていう表示を見たことがあるかい?
ヒロ: あ、ある!それがhttpのステータスコードなんですね。
タクミ: そうそう、数字の代わりにテキストで表示されることもあるんだ。例えば「403 Forbidden」は、アクセスが拒否されたことを意味するよ。
ヒロ: なるほど、テキストで表示されることもあるんですね。ありがとうございます、タクミ先生。
httpのヘッダーにはどのような情報が含まれる?
ヒロ: タクミ先生、httpのヘッダーにはどのような情報が含まれるんですか?
タクミ: いい質問だね、ヒロさん。httpのヘッダーには、ブラウザとサーバーが通信する際に必要な情報が含まれてるんだよ。例えば、どのページにアクセスしたのかや、どの言語でコンテンツを取得するか、利用しているブラウザの情報やクッキーに関する情報などがあるよ。ざっくり言うと、通信の細かい情報が含まれているってところかな。分かりやすかったかな?
httpのCookieとは何?
ヒロ:先生、httpのCookieって何ですか?
タクミ:ああ、Cookieね。まずは、インターネットを利用する時に、サーバーとクライアント(つまり、ヒロさんが使っているパソコンやスマホ)がやりとりする情報があるよね。Cookieっていうのは、その情報を保存する小さなファイルのことだよ。
ヒロ:小さなファイルって?
タクミ:例えばさ、あなたがいつもよく行くウェブサイトを思い出してみて。そこにログインする時、ユーザー名やパスワードを入力するでしょ?その情報をブラウザがCookieに保存するわけ。次にそのサイトにアクセスする時には、改めてユーザー名やパスワードを入力する必要がなくなる。まあ、そんな感じかな。
ヒロ:なるほど、そういうことなんですね。ありがとうございます、先生!
タクミ:いいや、ヒロさん。もしわからないことがあったら、いつでも聞いてね。私が分かり易く説明してあげるから。
httpのセッションとは何?
ヒロ:タクミ先生、httpのセッションって何ですか?
タクミ先生:あ、そうね。セッションっていうのは、ウェブサイトで何かをする時に必要な手続きの一つよ。
ヒロ:手続き?
タクミ先生:はい。例えば、「ログインする」とか、「カートに商品を入れる」とか、そういう操作をする時に、サーバーとブラウザーの間で情報をやり取りする必要があるでしょう?
ヒロ:ああ、なるほど。
タクミ先生:その情報をやり取りする手続きのことを、セッションと呼ぶんだよ。セッション処理とも言うんだよ。
ヒロ:セッション処理…なんか難しそうですね。
タクミ先生:そうかな?もっとシンプルに言うと、セッションっていうのは、何かの作業をするために必要な道具の一つ、みたいなものだよ。大雑把に言えば。
ヒロ:道具…ということは、サーバーやブラウザーがその作業をするための材料みたいなもの?
タクミ先生:うん、まあそんな感じかな。セッションっていうのは、情報をやり取りするための仕組みで、その情報を使って何かをするわけだから、作業の材料と言えば分かりやすいかもね。
ヒロ:なるほど、分かりました!ありがとうございます!
httpのクッキーとセッションの違いは何?
ヒロ:タクミ先生、こんにちは!httpのクッキーとセッションって何が違うんですか?
タクミ:それはね、例えばお店で買い物をするとき、レジ袋に商品を入れるのはクッキーで、お店で買い物かごに入れて持ち運ぶのはセッションみたいなものだよ。
ヒロ:ああ、なるほど!でも、具体的にどういう違いがあるんですか?
タクミ:クッキーは、ブラウザに保存されている情報で、サーバーからクライアント側に送られることが多いんだ。一方、セッションは、サーバー側に保存されている情報で、サーバー側で管理されているんだ。
ヒロ:なるほど、わかりました!ありがとうございます!
タクミ:よかった!もし何か分からないことがあったら、いつでも聞いてね。プログラマーになるためには、知識を深めることが大切なんだよ。
httpのリダイレクトとは何?
ヒロ:先生、httpのリダイレクトって何ですか?
タクミ:それは、ウェブページを開く時に、最初にアクセスしようとしたサイトが、別のサイトに自動的に移動することを指します。例えばね、あなたが「www.example.com」にアクセスしようとしたけど、実際には「www.example.jp」に転送される場合があるんだよ。
ヒロ:なるほど、なんでそんな機能があるんですか?
タクミ:それは、ウェブサイトのURLが変わったときに、ユーザーが迷わずに新しいURLにアクセスできるようにするためです。また、SEO対策にも役立ちます。
ヒロ:そういうことですね!ありがとうございます、先生。
httpのプロキシとは何?
ヒロ:先生、httpのプロキシって何ですか?
タクミ:ヒロさん、プロキシはコンピュータネットワークの世界で使われます。たとえば、あなたがWebサイトを見る時、プロキシを介してアクセスすることもあるんですよ。
ヒロ:プロキシを介してって、どういうことですか?
タクミ:例えば、あなたがネットで何か見たいと思った場合、まずはプロキシにアクセスします。そして、プロキシがあなたの代わりにWebサイトにアクセスして、データを取得します。それがプロキシを介してアクセスするということです。分かりやすいですか?
ヒロ:なるほど、プロキシって便利なんですね。ありがとう、先生!
httpのキャッシュとは何?
ヒロ:タクミ先生、こんにちは。httpのキャッシュって何ですか?
タクミ:ヒロさん、こんにちは。httpはWebページを表示するためのプロトコル(通信規約)ですよね。その通信規約で使われるのがhttpのキャッシュという仕組みで、Webページの再表示を早くするために使われるんだよ。
ヒロ:再表示を早くするって、どういうことですか?
タクミ:例えば、あなたが普段よくアクセスするWebページがあったとします。そのWebページの情報は、あなたが何度もアクセスすることによって、あなたのパソコンやスマホの中にキャッシュとして保存されます。すると、次回そのWebページにアクセスした時には、キャッシュに保存された情報が使われて、Webページの再表示が早くなるんです。
ヒロ:なるほど、キャッシュとはWebページの情報を保存することで、再表示を早くする仕組みなんですね。ありがとうございます。
httpのETagとは何?
ヒロ:タクミ先生、httpのETagって何ですか?
タクミ:それはWebサーバーとブラウザ間で使われる仕組みの一つで、コンテンツの更新状況を示すタグのことです。
ヒロ:コンテンツの更新状況を示すタグですか?どういうことですか?
タクミ:例えば、Webサイトで表示している画像が更新されるとします。ETag を使うと、ブラウザがその画像をキャッシュしており、更新された画像がサーバー上にあることを確認するために、ブラウザがサーバー側にリクエストを送信する必要があります。
ヒロ:なるほど、画像が更新されたかどうかを確認するためのものなんですね。ありがとうございます!
タクミ:どういたしまして。他にも質問があったら気軽に聞いてくださいね。
httpのコンテンツネゴシエーションとは何?
ヒロ:タクミ先生、httpのコンテンツネゴシエーションって何ですか?
タクミ:おっ、いい質問だね。httpのコンテンツネゴシエーションっていうのは、WebサーバとWebブラウザが、どの言語や画像形式を使って情報をやり取りするかを決めるプロセスのことだよ。
ヒロ:WebサーバとWebブラウザが情報をやり取りするプロセスって、何が大事なの?
タクミ:それはね、WebサーバとWebブラウザで使える言語や画像形式が違う場合があるから。例えば、Webサーバが日本語で書かれたHTMLを提供していて、Webブラウザが英語しかわからない場合、Webブラウザはその情報を理解できないんだ。だから、どの言語や形式を使ってやり取りするかを決めることが大切なんだよ。
ヒロ:なるほど、言語や形式が違うと情報を理解できないんですね。タクミ先生、とても分かりやすかったです。ありがとうございます!
httpのキーピングアライブとは何?
ヒロ: タクミ先生、HTTPのキーピングアライブって何ですか?
タクミ: ええ、キーピングアライブというのは、プログラムがクライアントとサーバー間の接続を保持し続けるための仕組みのことですね。例えば、ウェブページを表示させているとき、ページを読み込んだ後もずっと同じサイトと接続が続いているわけですよ。キーピングアライブを使うことで、その接続が長く続くようになるんです。
ヒロ: なるほど、つまりずっと同じサイトでいろんなページを見るとき、サーバーとクライアント間の接続が途切れないようにするってことですね。
タクミ: その通りです。キーピングアライブを使うことによって、接続が途切れないようになるため、次のページを読み込むときに接続を新たに確立する手数が省けます。つまり、ページの読み込みの速度が上がるってことですよ。
ヒロ: なるほど、ありがとうございます!
httpのバージョンにはどのようなものがある?
ヒロ: タクミ先生、httpってバージョンには何種類ありますか?
タクミ: そうですね、httpのバージョンには1.0、1.1、2.0の3種類がありますよ。それぞれどう違うかというと、例えば1.1ではリクエストとレスポンスのやり取りを最適化したことで、通信速度が速くなっています。
ヒロ: なるほど、確かに速いのはいいですね。1.0や2.0はどうでしょう?
タクミ: 1.0は最初のhttpバージョンで、1つのリクエストにつき1つずつ処理していたため、通信が遅くなっていました。2.0は複数のデータを同時にやり取りすることで、スピードアップを図っています。その他にも、さまざまな改善が加えられているんです。
ヒロ: なるほど、バージョンごとに違いがありますね。勉強になりました、ありがとうございます。
タクミ: どういたしまして。何か他に質問はありますか?
http2とは何?
ヒロ:タクミ先生、http2って何ですか?
タクミ:ふむ、http2とはインターネット上でWebページをやり取りするときに使われる規格の一つだね。
ヒロ:規格って何ですか?
タクミ:えー、たとえばスマホの充電器は規格で決められた形になっているよね。それと同じで、インターネット通信のルールみたいなものだよ。
ヒロ:なるほど、そういうことですか。http2は何がいいんですか?
タクミ:それはね、以前に使われていたhttp1.1と比べて、通信が高速になったり、同じ接続で複数の通信ができたりする点が特徴だよ。つまり、Webページの表示が早くなったり、快適にブラウジングできるようになったんだ。