+++ title = "PHP HTTP Server" description = "Handling HTTP Requests in PHP" tags = ["php", "http", "server"] slug = "http-server" previous = "web/http-post.html" next ="web/php-html.html" +++ 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