function drupal_add_http_header

Sets an HTTP response header for the current page.

Note: When sending a Content-Type header, always include a 'charset' type, too. This is necessary to avoid security bugs (e.g. UTF-7 XSS).

Parameters

$name: The HTTP header name, or the special 'Status' header name.

$value: The HTTP header value; if equal to FALSE, the specified header is unset. If $name is 'Status', this is expected to be a status code followed by a reason phrase, e.g. "404 Not Found".

$append: Whether to append the value to an existing header or to replace it.

28 calls to drupal_add_http_header()
aggregator_test_feed in modules/aggregator/tests/aggregator_test.module
Page callback. Generates a test feed and simulates last-modified and etags.
ajax_deliver in includes/ajax.inc
Packages and sends the result of a page callback as an Ajax response.
ajax_set_verification_header in includes/ajax.inc
Sets a response header for ajax.js to trust the response body.
authorize_access_denied_page in ./authorize.php
Renders a 403 access denied page for authorize.php.
drupal_deliver_html_page in includes/common.inc
Packages and sends the result of a page callback to the browser as HTML.

... See full list

File

includes/bootstrap.inc, line 1466

Code

function drupal_add_http_header($name, $value, $append = FALSE) {
    // The headers as name/value pairs.
    $headers =& drupal_static('drupal_http_headers', array());
    $name_lower = strtolower($name);
    _drupal_set_preferred_header_name($name);
    if ($value === FALSE) {
        $headers[$name_lower] = FALSE;
    }
    elseif (isset($headers[$name_lower]) && $append) {
        // Multiple headers with identical names may be combined using comma (RFC
        // 2616, section 4.2).
        $headers[$name_lower] .= ',' . $value;
    }
    else {
        $headers[$name_lower] = $value;
    }
    drupal_send_headers(array(
        $name => $headers[$name_lower],
    ), TRUE);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.