Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

【学習記録①】チームラボオンラインスキルアップ課題「インターネットについて」

More than 1 year has passed since last update.

はじめに

下記サイトを参考に、Webサービスを作成する手順を記します。

チームラボオンラインスキルアップ課題
https://team-lab.github.io/skillup/

目次

  • Step1 掲示板を作ろう

    • 1. インターネットについて
    • 2. WEBサーバーについて
    • 3. HTMLとCSSについて
    • 4-a【Windows】Dockerと開発環境
    • 4-b【Mac】Dockerと開発環境の作り方
    • 5. PHPの説明
    • 6. PHPでGET/POSTをやってみる
    • 7. データベースについて
    • 8. SQLを書いてみる
    • 9. PHPでデータベースを操作してみる
    • 10. GitとGithubについて
  • STEP2 Instagramもどきを作ろう

    • 1. フレームワークについて
    • 2. Laravelで初期ページを表示してみよう
    • 3. Laravelを触ってみよう
    • 4. 入力フォームを作ってみよう
    • 5. LaravelとPostgerSQLで掲示板を作ってみよう
    • 6. Laravelで掲示板にログイン機能を実装
    • 7. 画像アップロードしよう
    • 8. 画面仕様書とは何か
    • 9. データベース設計書とは何か
    • 10 Herokuで世界に公開してみよう
    • 11 最終課題

今回勉強したこと

「STEP1 掲示板を作ろう」>「インターネットの仕組み」

①インターネットの仕組み

* 家庭内LANや企業内LAN,携帯電話網などのネットワーク同士を繋ぐ、世界規模の通信網のこと
  • インターネットの仕組み
    • インターネットに接続するにはルータなどの機器を使用する
    • インターネットに接続する機器には、IPアドレス(176.32.98.81など)が割り当てられる。通信の際にはそのIPアドレスを用いて接続先を指定する *ドメイン
    • IPアドレスは数字列で人間に分かりにくいので、一般的には英数字列で名前(ドメイン名と呼ばれる)を付ける
    • IPアドレスとドメイン名を関連付けることによって、IPアドレスの代わりにドメイン名で接続することができる
  • クライアントとサーバ
    • インターネットにおいて、リクエストを送信する側をクライアント、それを受けてレスポンスを返す側をサーバと呼ぶ
    • クライアントとサーバーはプロトコル(通信規約)に従い通信を行う
    • サーバには様々な種類のものがある、一般に1つのIPアドレス上で複数の種類のサーバが動いていることが多い
    • 通信の際にこれらを区別するためにポート番号という0から65535までの数値が用いられる
プロトコル 主なポート番号 用途
HTTP 80 Webサーバとの送受信
HTTPS 443 セキュアな接続の上でのHTTP通信
FTP 20,21 ファイル転送
SMTP 25 メール送信
POP3 110 メール受信
SSH 22 暗号化通信

[課題]DNSについて調べよう

DNSはIPアドレスとドメイン名を関連付けるシステムです。どのような動作をするのか調べてみましょう。

参考URL
参考というか、写経です。

「インターネット10分講座 DNS」
https://www.nic.ad.jp/ja/newsletter/No22/080.html

目次

  • DNSとは?
  • HOSTS.TXTからDNSへ
  • DNSのしくみ
  • DNSにおける問い合わせの流れ

DNSについて

  • DNSとは?

    • Domain Name Systemの略
    • インターネット上でドメイン名(ドメインネーム)を管理、運用するシステム
    • 現在のインターネットを利用するうえで、DNSは必要不可欠
  • DNSとはどういうものなのか?

  • IPアドレスで通信するのは不便

    • IPアドレスで相手先を直接指定することは、インターネットを利用する各ユーザーがWebサーバのIPアドレスをすべて記憶しておく必要があり、現実的ではない
    • なんらかの理由で、相手先ネットワークの構成が変更された場合、IPアドレスをつけなおしたり、変更される場合がある。そうすると以前のIPアドレスでは接続できなくなる
    • 人間が覚えやすく使いやすい「名前」で指定できるようにするためのしくみが必要で、DNSはそれを実現するためのシステム
  • HOSTS.TXTからDNSへ

    • インターネットの前身であるARPANET(1969年~)では、ホスト名とIPアドレスの対応表として、HOSTS.TXTというテキストファイルを使用していた
    • 当時、新しくARPANETに接続した組織は、最新のHOSTS.txtをSRI-NICから入手し、自分のホストに導入していた。これにより、相手先ホストを名前でしてすることができる
    • 自分の名前とIPアドレスの対応は、SRI-NICにメールで通知します。
    • SRI-NICではこのメールを受けてHOSTS.TXTの更新作業を行い、公開します
    • 各ホストでは、定期的にSRI-NICからHOSTS.TXTを入手し、ファイルを更新すればいいことになります
    • しかし、この方法は下記の理由により、1980年代初頭には限界
      • 接続ホスト数の増加によるHOSTS.TXTファイルの肥大化
      • HOSTS.TXTファイルの更新頻度の増大による作業量の増加
      • マスターファイルを集中管理するサーバの負荷の増大
    • そこで、これらの問題を解決するための新たな仕組みが開発され、1983年にRFC882およびRFC883として発表。これが現在のDNSの元となったもの
    • RFC882とRFC883は、1987年にそれぞれRFC1034とRFC1035に改良(現在のDNS) HOSTS.TXT.jpg <図1 SRI-NICからHOSTS.TXTを入手 |インターネット10分講座 DNS -JPNIC>
  • DNSのしくみ

    • DNSでは名前空間の最上位に「ルートサーバ」と呼ばれるサーバが作成されます
    • ルートサーバーでは"jp"や"com"など、一番上位のドメイン名(TLD)のDNSサーバがインターネット上のどの位置にあるか(つまりどのIPアドレスなのか)を管理。
    • TLSサーバーではそれぞれの空間で管理される名前、たとえば"example"や"ad.jp"などのDNSサーバーがどこにあるかを管理する
    • "example.jp"のサーバでは自分の名前管理の中にあるホストへの対応表、たとえば"www.example.jp"のIPアドレスが管理される。
    • つまり、DNSでは、名前を「ドメイン」と呼ばれる階層構造で管理することによりデータを複数のホストに分散化して管理するようになっています。
      • ファイルが肥大化しないように、データを複数のホストに分散化
      • 名前を「ドメイン」として階層化し、更新作業の集中を防止

dnsの階層構造.jpg
[インターネット10分講座 DNS -JPNICより]

  • DNSにおける問い合わせの流れ
    DNS問い合わせの流れ.jpg

  • DNSにおける問い合わせの流れ

    • DNSを利用するときにはまず「DNSサーバに問い合わせを行うためのサーバ」を1台用意する
    • 問い合わせを行うためのサーバには、ルートサーバのIPアドレスが書かれた表をあらかじめ準備しておく
  • 問い合わせを行うサーバの動き

  • 結果を受け取ったサーバ

    • jpサーバーに同様の問い合わせを行う
    • jpサーバはルートサーバと同様に「それはexample.jpサーバが管理しています」と知らせる
    • 最終的に問い合わせを受けたexample.jpサーバが、www.example.jpのIPアドレスを返す
  • つまり

    • このようにDNSでは、問い合わせを行うためのサーバーがルートサーバから下位サーバに対し反復的に名前を問い合わせ、べての名前空間に対する問い合わせに対応する
  • また、

    • DNSでは、同じ問い合わせを繰り返す行うことを防止する
    • DNSサーバへの問い合わせによって得た結果をある時間記憶しておく(キャッシュ)仕組みが実装されていることがある
      • キャッシュが有効な間に同じ内容の問い合わせがあった場合、
      • サーバーでは再度反復問い合わせをすることなく
      • 自分が持っているキャッシュの内容を解凍する
    • このため、問い合わせを行うためのサーバーは「DNSキャッシュサーバ」とも呼ばれている
YNanshin
2019年4月からフリーランスのエンジニアとして活動しています WordPress/PHP/Python/MySQL/Datadog/Kibana/Elasticsearch/Github
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away