回答編集履歴

2

もうちょっと修正

2022/03/20 08:48

投稿

miyabi-sun
miyabi-sun

スコア21158

test CHANGED
@@ -1,9 +1,13 @@
1
1
  HTTPやWebサーバの学習をしましょう。
2
- 本回答は、どこから手を付けて良いかの見当をつける為アドバイスという形で解説していきます。
2
+ 本回答は、どこから手を付けて良いかの見当をつける為アドバイスとして解説していきます。
3
3
 
4
4
  私達はChrome等のWebブラウザを起動して、teratail等のWebサイトに接続します。
5
5
  この時、初回のアクセスで「このURLにふさわしいデータをください」という**HTTPリクエスト**がブラウザからWebサイトへ送信されます。
6
6
  それに対して回答として主に「HTMLとして妥当な文字列データ」を**HTTPレスポンス**がWebサーバからブラウザに送信されます。
7
+
8
+ これがHTTP通信という仕様です。
9
+ ファイルをわざわざ**HTTPリクエスト**やら**HTTPレスポンス**に言い換えたのは理由があり、
10
+ これらは通信する時に受け渡しする文字列データであり、ファイルという個体ではないんだぞという事が重要になってきます。
7
11
 
8
12
  > htmlは理解ができます。
9
13
 
@@ -11,36 +15,31 @@
11
15
  単にこのHTMLという文書ルールを遵守して作られた、文字列が詰まっている**ファイル**です。
12
16
  これをWebで配信する為にApacheやNginxといったWebサーバアプリケーションの力を借りる事になります。
13
17
 
14
- ApacheやNginxといった起動するだけでお手軽なWebサーバとして可動するアプリケーションが存在します。
18
+ ApacheやNginxといった起動するWebサーバとして可動するアプリケーションが存在します。
15
- PCの特定ディレクトリをルートとして起動して
19
+ PCの特定ディレクトリをルートと認識して、[URL](https://ja.wikipedia.org/wiki/Uniform_Resource_Locator)のパス名と結びつけます
16
- ディレクトリの中に入っているファイルと同じHTTPリクエストを受け取ったらオウム返のように
20
+ HTTPリクエストを受け取った時にURLのパス名を確認て、
17
- ファイルの中身をHTTPレスポンスとして返します。
21
+ 対応するファイルがあれば、ファイルの中身をHTTPレスポンスとして返します。
18
22
 
19
23
  ---
20
24
 
21
25
  次にPHPとHTMLがどう関係しているのか?を見ていきましょう。
22
26
 
23
- Chrome等Webブラウザ「特定URLアクセスして結果を受け取る」流として
27
+ 例えばteratailでは、多く質問者からの質問シームレス新着質問欄に表示さます。
24
- HTTPリクエスト」と「HTTPレスポンス」提示しました。
28
+ 質問がある度に中の人が出社してHTMLファイル作っている……?
25
- これは別に本物ファイルある必要はありません
29
+ これは中々重労働なので考えにくい
26
30
 
27
- 「HTMLファイル」というファイルである必要があるのは、
28
- ApacheやNginxとう特定ディレクトリ配下のファイルとURL一致させて取り扱い、
31
+ こうったサービスでは積み重なる情報捌く為にプログラムを利用します。
29
- ファイルをHTTPポンスして配信するWebサーバソフトだけです。
32
+ HTTPリクエト」を受け取るとサーバー内プログラムが動作します。
33
+ プログラムはデータベースから積み上がった質問一覧から相応しい質問をチョイスして即興でHTML文字列を作ります。
34
+ その即興で作ったHTML文字列を「HTTPレスポンス」として返しています。
30
35
 
36
+ ここで登場するのがPHP!
31
- 例えばteratailは、多くの質問者からの質問がシームレス新着質問欄に表示されす。
37
+ PHPはHTML文字列を即興作る為生み出されたといっても過言ではない経緯を持つプログラミング言語です。
32
- 質問がある度にHTMLファイルを生成る……?
38
+ (別PHPでなくてもNode.js、Ruby、Python、Go、C++…etc、HTTPリクエストから即興でHTMLファイルを作るプログラミング言語は存在、なんでも構ません)
33
- そんなわけないですよね?
34
39
 
35
- こういったサービスでは積み重なる情報を裁く為にプログラムを利用します。
36
- 「HTTPリクエスト」を受け取った後、
37
- サーバー内でプログラムが走ってデータベースから積み上がった質問一覧から相応しい質問をチョイスして
38
- 即興でHTML文字列を作って「HTTPレスポンス」として返す事を行いたいわけです。
39
-
40
- ここで登場するのがPHPです
41
40
  PHPはApache内で動作する事を重要視しており、
42
41
  Apacheに組み込んで利用出来る外部モジュールを提供しています。
43
- (別PHPなくてもNode.js、Ruby、Python、Go、C++…etcなんでもHTTPリクエストから即興でHTMLファイルを作るプログラミング言語は存在し、心底んでも良いで)
42
+ Apacheユーザーはとっつきやすいすね。そこがPHPの採用理由とりま
44
43
 
45
44
  > phpで構成されていると思われるページを開発者ツールで確認してみると、コードの内容がhtmlと同じような構成になっています。(bodyタグや、divタグやなど...) phpファイルから、どのようにしてhtmlに書き変わっているのでしょうか?
46
45
 
@@ -51,6 +50,7 @@
51
50
 
52
51
  つまり先程説明した「即興でHTML文字列を作ってHTTPレスポンスを返す」事がApache+PHPで実現出来るわけですね。
53
52
  Apacheに限らず、似たような挙動を実現するモジュールの組み合わせはいくつか存在します。
53
+ 速度を求める人の主流はNginx+php-fpmの組み合わせに移り変わりつつあります。
54
54
 
55
55
  ただし、PHPはデフォルトではHTMLを生成して返す作りとなっていますが、HTMLを作るだけが能ではありません。
56
56
  CSS、JavaScript、CSV、JSON、YAML等のHTML以外のテキストデータを作って返すという事も視野に入っています。
@@ -60,7 +60,7 @@
60
60
  > 私が見つけることができていないだけで、本当はhtmlファイルがあるのでしょうか?それとも、htmlファイルが存在しないということもあり得るのでしょうか?
61
61
 
62
62
  企業サイトでは会社の概要等の変わりようがないURLにはファイルとして存在しているHTMLファイルを設置すれば良いです。
63
- 逆にteratailのような質問サイトや、掲示板、SNSは更新が頻発するのでHTMLファイルはほぼありません。
63
+ 逆にteratailのような質問サイトや、掲示板、SNSといったサービスでは更新が頻発するのでHTMLファイルはほぼありません。
64
64
  場所によってはゼロという事もあります。
65
65
 
66
66
  その理由はもう上で散々述べましたが、

1

ちょっとだけ校正

2022/03/20 08:18

投稿

miyabi-sun
miyabi-sun

スコア21158

test CHANGED
@@ -27,22 +27,20 @@
27
27
  「HTMLファイル」というファイルである必要があるのは、
28
28
  ApacheやNginxという特定ディレクトリ配下のファイルとURLを一致させて取り扱い、
29
29
  ファイルをHTTPレスポンスとして配信するWebサーバソフトだけです。
30
- 重要なのは「HTTPリクエスト」を受け取って「HTML文字列として妥当な結果のHTTPレスポンス」を送ることだけです。
31
30
 
32
31
  例えばteratailでは、多くの質問者からの質問がシームレスに新着質問欄に表示されます。
33
32
  質問がある度にHTMLファイルを生成している……?
34
33
  そんなわけないですよね?
35
34
 
35
+ こういったサービスでは積み重なる情報を裁く為にプログラムを利用します。
36
36
  「HTTPリクエスト」を受け取った後、
37
37
  サーバー内でプログラムが走ってデータベースから積み上がった質問一覧から相応しい質問をチョイスして
38
- 即興でHTML文字列を作って「HTTPレスポンス」として返す事を行ってす。
38
+ 即興でHTML文字列を作って「HTTPレスポンス」として返す事を行いたいわけです。
39
39
 
40
- こういった事はファイルとして存在しているHTMLファイルでは実現が困難となります。
41
- ちょっと毎秒張り付いて手作業でHTMLファイル作ってよ、そんな刺し身の上にタンポポ乗せるような仕事ある?
42
-
43
- ここで登場するのがPHPです
40
+ ここで登場するのがPHPです
44
41
  PHPはApache内で動作する事を重要視しており、
45
42
  Apacheに組み込んで利用出来る外部モジュールを提供しています。
43
+ (別にPHPでなくてもNode.js、Ruby、Python、Go、C++…etcなんでもHTTPリクエストから即興でHTMLファイルを作るプログラミング言語は存在し、心底なんでも良いです)
46
44
 
47
45
  > phpで構成されていると思われるページを開発者ツールで確認してみると、コードの内容がhtmlと同じような構成になっています。(bodyタグや、divタグやなど...) phpファイルから、どのようにしてhtmlに書き変わっているのでしょうか?
48
46
 
@@ -62,9 +60,7 @@
62
60
  > 私が見つけることができていないだけで、本当はhtmlファイルがあるのでしょうか?それとも、htmlファイルが存在しないということもあり得るのでしょうか?
63
61
 
64
62
  企業サイトでは会社の概要等の変わりようがないURLにはファイルとして存在しているHTMLファイルを設置すれば良いです。
65
-
66
- 逆に社員のブログ等のような更新が度重なるページにはPHPファイルを設置する事になります。
67
- teratailのような質問サイトや、掲示板、SNSは更新が頻発するのでHTMLファイルはほぼありません。
63
+ 逆にteratailのような質問サイトや、掲示板、SNSは更新が頻発するのでHTMLファイルはほぼありません。
68
64
  場所によってはゼロという事もあります。
69
65
 
70
66
  その理由はもう上で散々述べましたが、