質問するログイン新規登録

回答編集履歴

1

図(?)の誤解を受け易い部分を修正。一部追記

2020/10/12 04:30

投稿

dodox86
dodox86

スコア9427

answer CHANGED
@@ -4,9 +4,9 @@
4
4
 
5
5
  `localhost`とはその呼び名の通り、ローカルのマシンを指します。これは通常、IPアドレスとして`127.0.0.1`を指していて、自分自身を指しているため、ループバックアドレスとも呼ばれます。`localhost:8000`と書くと、アドレスが`localhost`、すなわち自分自身のマシンで、8000番のTCPポート番号でクライアントからの接続を待ち受けている。あるいはクライアントからはそれで接続できる、とのような意味になるでしょう。mySQLで言えばそれが`localhost:3306`です。尚、混乱しやすいですが、ポート番号はクライアントにとって接続元(source)と接続先(destination)の2つがあります。上記の3306や8000はクライアントからみた接続先、サーバー側からみた接続待ち(`LISTEN`)しているポート番号になります。この辺りはクライアント/サーバー型のソケットプログラミングを勉強すると良く分かってきます。
6
6
 
7
- サーバー、クライアント間の接続の概念図としては以下のようになるでしょうか。
7
+ サーバー、クライアント間の接続の概念図としては以下のようになるでしょうか。尚、ここで言う「クライアント」とは「サーバー」へ能動的に接続しに行く立場を示すもので、反対に「サーバー」とは「クライアント」からの接続要求に対して接続を受け付ける立場を示しています。
8
8
  ```
9
9
  ("==>"はクライアントがサーバーに接続する方向)
10
10
 
11
- クライアント(WEBブラウザとか) ==> WEBサーバー(TCP80番ポートで接続待ち) ==> mySQL(TCP3306番ポートで接続待ち)
11
+ WEBブラウザなど ==> WEBサーバー(TCP80番ポートで接続待ち) ==> mySQL(TCP3306番ポートで接続待ち)
12
12
  ```