# How to use HTTP Headers in PHP

> Learn how to set HTTP response headers in PHP with the header function, from status codes and Content-Type to forcing a 301 redirect with a Location header.

Author: [Flavio Copes](https://flaviocopes.com/about/) | Published: 2022-08-30 | Topics: [PHP](https://flaviocopes.com/tags/php/) | Canonical: https://flaviocopes.com/php-http-headers/

PHP lets us set the HTTP headers of a response through the `header()` function.

[HTTP Headers](https://flaviocopes.com/http-request-headers/) are a way to send information back to the browser.

We can say the page generates a 500 Internal Server Error:

```php
<?php
header('HTTP/1.1 500 Internal Server Error');
?>
```

Now you should see the status if you access the page with the [Browser Developer Tools](https://flaviocopes.com/browser-dev-tools/) open:

![Browser developer tools Network tab showing 500 Internal Server Error status for post.php](https://flaviocopes.com/images/php-http-headers/Screen_Shot_2022-06-27_at_14.10.29.jpg)

We can set the `content/type` of a response:

```php
header('Content-Type: text/json');
```

We can force a 301 redirect:

```php
header('HTTP/1.1 301 Moved Permanently');
header('Location: https://flaviocopes.com');
```

We can use headers to say to the browser “cache this page”, “don’t cache this page”, and a lot more!

To see what each header your site sends actually does, try my [HTTP headers explainer tool](https://flaviocopes.com/tools/headers-explainer/).
