プログラマー VTuber 衣亥栖ティオのちょっとした話

Youtubeに投稿したプログラミング学習動画の補足説明をするためのブログです。

プログラマーへの道 #63 の補足説明

こんにちは、プログラマーVTuberの衣亥栖ティオです。
今回は以下の動画の補足説明をします。 動画内で実装したソースコードも載せています。


今回の動画で実装したソースコード

前回からの差分は以下のURLから検索することができます。 "プログラマーへの道" の動画番号を "Filters" に追加して検索してください。

https://github.com/tio-iis/sample-backend-server/pulls?q=is%3Apr+is%3Aclosed

f:id:iis_tio:20211204143415j:plain:w300

全体は以下のURLのタグ検索機能で確認することができます。 "プログラマーへの道" の動画番号を "Find a tag" に指定して検索してください。

https://github.com/tio-iis/sample-backend-server

f:id:iis_tio:20211204143619j:plain:w300

curlの正体

動画内でバックエンドサーバにブラウザでもアクセスできるという説明をしました。 ここで curl の正体が分かったかなと思っています。 curl は HTTP リクエストを送信するためのコマンドです。

https://ja.wikipedia.org/wiki/CURL

HTTP リクエストというはブラウザがWebサイトを表示する際にバックエンドサーバに送信している通信のことでもあります。 言い換えると、curl は "ブラウザがWebサイトを表示する際にバックエンドサーバに送信している通信を送信できるコマンド" です。 開発中に curl を利用する機会はとても多いので、これはエンジニアにとって必須のコマンドです。 今後も開発でも使っていくので覚えておきましょう。

ブラウザとポート番号

バックエンドサーバにアクセスする際に "8080" という数字を付けていますが、これをポートといいます。

https://ja.wikipedia.org/wiki/%E3%83%9D%E3%83%BC%E3%83%88_(%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF)

実はブラウザでWebページを表示する際のURLにもポートが必要なので、本来であれば "https://github.com/" というURLにもポートを指定する必要があります。 ポートは通信形式によって利用する数字が決まっており、https の通信の場合は 443 を指定します。 そのため、本来であれば "https://github.com/" は "https://github.com:443/" でなければいけません。 試しに "https://github.com:443/" をブラウザで表示してみてください。 正常に GitHub のページが表示されるはずです。 では、なぜ普段 443 を指定しなくてもいいのかというと、ブラウザの通信は443を利用するというのが決まっているので、ブラウザが空気を読んで 443 を付けてくれているからです。

"ブラウザ(https通信)は 443 を利用する" というように決まっているポートを Well Known Port といいます。

https://ja.wikipedia.org/wiki/TCP%E3%82%84UDP%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E3%83%9D%E3%83%BC%E3%83%88%E7%95%AA%E5%8F%B7%E3%81%AE%E4%B8%80%E8%A6%A7

http は 80 で、ssh 22 で、mysql は 3306 というように有名な通信形式はポートが決まっているので、 エンジニアは大体このポートを覚えています。

favicon について

favicon の説明を以下に載っています。 favicon はなくてもいいものですが、あったほうがかっこいいので、Webサービスを開発するときは大体この favicon を用意することになりますね。

https://ja.wikipedia.org/wiki/Favicon