From f72b822c318339f9e3147e89b36c5b2000d8c060 Mon Sep 17 00:00:00 2001 From: Andrew Davis Date: Mon, 29 Apr 2019 20:13:43 -0500 Subject: [PATCH 1/4] Removed unnecessary trailing space --- chapters/web/02-http-post.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/chapters/web/02-http-post.md b/chapters/web/02-http-post.md index 1141a2a..8b68561 100644 --- a/chapters/web/02-http-post.md +++ b/chapters/web/02-http-post.md @@ -32,5 +32,3 @@ POST requests are used to send data to a server. A server will process the data We have been talking a lot about how a server can process requests and send responses. How do programmers develop a server to handle HTTP requests? With PHP! PHP was built with web server development in mind. Let us write our first PHP server script. - - From c9f7325e9525c2bc700dbe808a485a5d7e45c3fb Mon Sep 17 00:00:00 2001 From: Andrew Davis Date: Mon, 29 Apr 2019 20:14:20 -0500 Subject: [PATCH 2/4] Tweaked font stack for linux --- assets/css/site.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/assets/css/site.css b/assets/css/site.css index 1726644..2bd3d15 100644 --- a/assets/css/site.css +++ b/assets/css/site.css @@ -17,13 +17,13 @@ button { } code { background-color: #F0F0F0; - font-family: Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + font-family: Menlo, Monaco, Consolas, "Noto Mono", "Liberation Mono", "Courier New", monospace !important; font-size: 14px; padding: 0.10em 0.25em; } pre, pre code { background-color: transparent; - font-family: Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + font-family: Menlo, Monaco, Consolas, "Noto Mono", "Liberation Mono", "Courier New", monospace !important; font-size: 14px; margin: 0 !important; border-radius: 0 !important; From 6e47a563d3e03c496b9a74a3fbfed4e1d8af28c7 Mon Sep 17 00:00:00 2001 From: Andrew Davis Date: Mon, 29 Apr 2019 20:14:39 -0500 Subject: [PATCH 3/4] Updated JS lock --- package-lock.json | 41 ++++++++++++++++++++++++++++++----------- 1 file changed, 30 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index 175c934..e8ec015 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3895,7 +3895,8 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -3916,12 +3917,14 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -3936,17 +3939,20 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -4063,7 +4069,8 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -4075,6 +4082,7 @@ "version": "1.0.0", "bundled": true, "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -4089,6 +4097,7 @@ "version": "3.0.4", "bundled": true, "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -4096,12 +4105,14 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.2.4", "bundled": true, "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.1", "yallist": "^3.0.0" @@ -4120,6 +4131,7 @@ "version": "0.5.1", "bundled": true, "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -4200,7 +4212,8 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -4212,6 +4225,7 @@ "version": "1.4.0", "bundled": true, "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -4297,7 +4311,8 @@ "safe-buffer": { "version": "5.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -4333,6 +4348,7 @@ "version": "1.0.2", "bundled": true, "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -4352,6 +4368,7 @@ "version": "3.0.1", "bundled": true, "dev": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -4395,12 +4412,14 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "yallist": { "version": "3.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true } } }, From dba80b93b985f03db1d003d6ecddf325ad45f1f3 Mon Sep 17 00:00:00 2001 From: Andrew Davis Date: Mon, 29 Apr 2019 20:14:53 -0500 Subject: [PATCH 4/4] Added new chapter to web section --- assets/templates/_table_of_contents.phtml | 1 + chapters/web/03-http-server.md | 58 +++++++++++++++++++++++ config.php | 6 +++ 3 files changed, 65 insertions(+) create mode 100644 chapters/web/03-http-server.md diff --git a/assets/templates/_table_of_contents.phtml b/assets/templates/_table_of_contents.phtml index cb71f4e..87cbbfa 100644 --- a/assets/templates/_table_of_contents.phtml +++ b/assets/templates/_table_of_contents.phtml @@ -31,6 +31,7 @@
  1. HTTP
  2. HTTP POST
  3. +
  4. PHP HTTP Server
Credits diff --git a/chapters/web/03-http-server.md b/chapters/web/03-http-server.md new file mode 100644 index 0000000..667105d --- /dev/null +++ b/chapters/web/03-http-server.md @@ -0,0 +1,58 @@ +In PHP, you usually use a separate web server program that accepts HTTP requests and passes them to PHP to create a response. Common examples of separate web server programs are Apache and Nginx. However, PHP has a built in web server we can use during development. + +To use the development web server, open a terminal and a new folder for holding your code. Create a file called `index.php` and put this PHP code in it: +```php +"; +foreach ($headers as $key => $header) { + echo "$key: $header
"; +} +``` +Reload `localhost:8080` and you will see the main request line and all of the headers printed on the web page. The `
` tag is HTML for a new line. Since we are outputting to a web browser, we can no longer use `"\n"` to create a new line. + +By default, PHP will generate the necessary response line and headers. If you open your browser console and open the network tab, you can see the response code and headers. +```http +HTTP/1.1 200 OK +Host: localhost:8080 +Date: Sun, 28 Apr 2019 10:19:25 -0500 +Connection: close +X-Powered-By: PHP/7.2.17 +Content-type: text/html; charset=UTF-8 +``` +PHP set the response code to `200 OK` and the content type to `text/html`. Even though PHP will output good defaults, we can change them in our code if we want. Update your `index.php` file with this code: +```php + 'HTTP POST', 'subtitle' => 'Sending data to a server', 'previous' => 'web/http', + 'next' => 'web/http-server', + ]), + Page::create('web/http-server', 'web/03-http-server.md', [ + 'title' => 'PHP HTTP Server', + 'subtitle' => 'Handling HTTP Requests in PHP', + 'previous' => 'web/http-post', 'next' => '', ]), ],