< HTTP/1.1 200 OK
> Content-Type: application/json
< HTTP/1.1 200 OK
< Content-Type: application/json
< Strict-Transport-Security: max-age=31536000; includeSubDomains
{"results":[{"title":"TestHeaders.com - Utilities for testing HTTP headers","url":"https://testheaders.com/","snippet":"TestHeaders.com - Utilities for testing HTTP headers","highlights":["TestHeaders.com - Utilities for testing HTTP headers"]},{"title":"ShowHeaders","url":"https://showheaders.com/","snippet":"See What Your Browser Sends\n[...]\nInstantly see exactly which HTTP headers your browser sends—completely free, real-time, no storage.\n[...]\nEvery time you click a link in your browser—whether you’re opening an article, streaming a video, or logging into your bank—your browser sends an HTTP request to the server hosting that link. But it’s more than just the address: along with the URL, your browser includes a set of HTTP headers that give servers important context.\n[...]\nHeaders are key/value pairs like`Referer`(which page you came from),`User-Agent`(your browser and device),`Accept-Language`(your preferred language), and`Cookie`(session data). ShowHeaders exists to demystify that process by displaying exactly which headers your browser sends when making a request.\n[...]\nCreate a link or button pointing to`headers.php`.\n[...]\n##### 2. Browser Sends Headers\n[...]\nWhen clicked, your browser will transmit all HTTP headers in the request.\n[...]\n##### 3. See Them Displayed\n[...]\nOur script renders the headers in a neat table—no data is stored.\n[...]\n###### 🔘 Button Link\n[...]\n```\n<a href=\"https://showheaders.com/headers.php\" class=\"btn btn-primary\">Test Headers</a>\n```\n[...]\n###### 🔗 Simple Hyperlink\n[...]\nClick Here to View Headers\n[...]\n```\n<a href=\"https://showheaders.com/headers.php\" target=\"_blank\">Click Here to View Headers</a>\n```\n[...]\n###### 📜 JavaScript Redirect\n[...]\n```\n<script>\nwindow.location.href = \"https://showheaders.com/headers.php\";\n</script>\n```\n[...]\n###### 📩 Form Submission\n[...]\n```\n<form action=\"https://showheaders.com/headers.php\" method=\"get\">\n  <button type=\"submit\">Submit Form</button>\n</form>\n```\n[...]\nShowHeaders is a fully free service. We display your HTTP headers in real time and do not store any personal or request-level data.\n[...]\nComprehensive guide to understanding HTTP headers with examples and technical details.","highlights":["See What Your Browser Sends\n[...]\nInstantly see exactly which HTTP headers your browser sends—completely free, real-time, no storage.\n[...]\nEvery time you click a link in your browser—whether you’re opening an article, streaming a video, or logging into your bank—your browser sends an HTTP request to the server hosting that link. But it’s more than just the address: along with the URL, your browser includes a set of HTTP headers that give servers important context.\n[...]\nHeaders are key/value pairs like`Referer`(which page you came from),`User-Agent`(your browser and device),`Accept-Language`(your preferred language), and`Cookie`(session data). ShowHeaders exists to demystify that process by displaying exactly which headers your browser sends when making a request.\n[...]\nCreate a link or button pointing to`headers.php`.\n[...]\n##### 2. Browser Sends Headers\n[...]\nWhen clicked, your browser will transmit all HTTP headers in the request.\n[...]\n##### 3. See Them Displayed\n[...]\nOur script renders the headers in a neat table—no data is stored.\n[...]\n###### 🔘 Button Link\n[...]\n```\n<a href=\"https://showheaders.com/headers.php\" class=\"btn btn-primary\">Test Headers</a>\n```\n[...]\n###### 🔗 Simple Hyperlink\n[...]\nClick Here to View Headers\n[...]\n```\n<a href=\"https://showheaders.com/headers.php\" target=\"_blank\">Click Here to View Headers</a>\n```\n[...]\n###### 📜 JavaScript Redirect\n[...]\n```\n<script>\nwindow.location.href = \"https://showheaders.com/headers.php\";\n</script>\n```\n[...]\n###### 📩 Form Submission\n[...]\n```\n<form action=\"https://showheaders.com/headers.php\" method=\"get\">\n  <button type=\"submit\">Submit Form</button>\n</form>\n```\n[...]\nShowHeaders is a fully free service. We display your HTTP headers in real time and do not store any personal or request-level data.\n[...]\nComprehensive guide to understanding HTTP headers with examples and technical details."]},{"title":"Headers: has() method - Web APIs | MDN","url":"https://developer.mozilla.org/en-US/docs/Web/API/Headers/has","snippet":"The`has()` method of the Headers interface returns a boolean stating whether a`Headers` object contains a certain header.\n\nFor security reasons, some headers can only be controlled by the user agent. These headers include the forbidden request headers and forbidden response header names.\n\n \n\n## Syntax\n\n \n\njs\n[...]\n```\nhas(name)\n\n```\n\n \n\n### Parameters\n\n `name`\n[...]\nThe name of the HTTP header you want to test for. If the given name is not a valid HTTP header name, this method throws a TypeError.\n\n \n\n### Return value\n\n \n\nA boolean value.\n\n \n\n## Examples\n\n \n\nCreating an empty`Headers` object is simple:\n\njs\n[...]\n```\nconst myHeaders = new Headers(); // Currently empty\n\n```\n[...]\nYou could add a header to this using Headers.append, then test for the existence of it using`has()`:\n\njs\n\n```\nmyHeaders.append(\"Content-Type\", \"image/jpeg\");\nmyHeaders.has(\"Content-Type\"); // Returns true\nmyHeaders.has(\"Accept-Encoding\"); // Returns false\n\n```\n\n \n\n## Specifications\n\n \n\n| Specification |\n| --- |\n| |  Fetch # ref-for-dom-headers-has① |\n| |\n\n \n\n## Browser","highlights":["The`has()` method of the Headers interface returns a boolean stating whether a`Headers` object contains a certain header.\n\nFor security reasons, some headers can only be controlled by the user agent. These headers include the forbidden request headers and forbidden response header names.\n\n \n\n## Syntax\n\n \n\njs\n[...]\n```\nhas(name)\n\n```\n\n \n\n### Parameters\n\n `name`\n[...]\nThe name of the HTTP header you want to test for. If the given name is not a valid HTTP header name, this method throws a TypeError.\n\n \n\n### Return value\n\n \n\nA boolean value.\n\n \n\n## Examples\n\n \n\nCreating an empty`Headers` object is simple:\n\njs\n[...]\n```\nconst myHeaders = new Headers(); // Currently empty\n\n```\n[...]\nYou could add a header to this using Headers.append, then test for the existence of it using`has()`:\n\njs\n\n```\nmyHeaders.append(\"Content-Type\", \"image/jpeg\");\nmyHeaders.has(\"Content-Type\"); // Returns true\nmyHeaders.has(\"Accept-Encoding\"); // Returns false\n\n```\n\n \n\n## Specifications\n\n \n\n| Specification |\n| --- |\n| |  Fetch # ref-for-dom-headers-has① |\n| |\n\n \n\n## Browser"]},{"title":"HTTP-Headers.com | Everything you need to know about Request and Response Headers.","url":"https://http-headers.com/","snippet":"This website serves as a reference site for information related to the HTTP protocol, specificaly looking at information that is not covered by the RFC specifications and some of the other official website documentation. This site concentrates on the elements of the subject matter not directly addressed by the official specification. It attempts to address practical aspects of the subject that are not covered by official specifications including how headers should be implemented in particular webservers, what security risks come with headers how to test and debug headers. The site tries to help novice users and experts alike by clearly explaining what the header does, how it should be used what the ramifications of usage are. Some headers are benign, some helpful and some should be treated with care. We take particular care to frame our information with reference to the implications of header use related to SEO (Search Engine Optimisation) rather than just regurgitating the official documentation .\n[...]\nhttp-headers.com is designed to serve as a reference site, allowing you to find header information by their type, request and response. We also have a Help Centre that allows you to validate header information in the real world by allowing you to create headers to put into your website and by making requests for pages on your site to ensure they are correct. Headers are broadly classified as request and response headers.\n[...]\nRequest headers are generated by the Client (your Browser or other software capable of asking for a web page) when asking for a page from your webserver. Request headers are used by the webserver to understand more about what your browser is asking for and how it might expect the response. For example, if your browser is capable of processing a compressed response then it might include \"Accept-Encoding: gzip, deflate\" which tells the webserver that the client can decode compressed content. This convention extends to all and any resources that require intelligence to process include media payload formats for audio, images and video.\n[...]\nConversely, Response headers are generated by the webserver for the Client in response to every resource request it receives. These headers are used by the Client in a variety of ways including processing the content of the response, caching the resource and security, to name but a few. For example, the response header \"Content-type: text/html\" tells the Client that the resource is a page of HTML and that it should be processed accordingly.\n[...]\nHTTP Headers, both request and response, are passed between Server and Client as plain text records (delimited by a carriage return) prepended to the request or response payload. By way of example, let's have a look at the interchange between Client and Server. For the purposes of this example, the ␍ indicates a Carriage Return/New Line character sequence.\n[...]\n① GET /index.html HTTP/1.1␍ ② Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8␍ ③ Accept-Encoding: gzip, deflate, br␍ ④ Accept-Language: en-GB,en;q=0.9,en-US;q=0.8␍ ⑤ Cache-Control: no-cache␍ ⑥ Connection: keep-alive␍ ⑦ DNT: 1␍\n[...]\n⑧ Host:\n[...]\n/␍\n[...]\n␍ ⑫ User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/\n[...]\n37.36 (KHTML,\n[...]\n⑬ ␍\n[...]\nThe two notworthy lines in the request are lines 1 and 13. Line 1 tells the server what resource is required and line 13, which is essentially empty, tells the server that we have finished sending headers and we are ready to receive the response.\n[...]\nLine 1 conveys the status of the request to the Client, in this case that the resource was successfully found and will be returned to the Client. The other line of particular interest is line 7. As per line 13 in the Send example, this line tells the Client that all the headers have been sent and that the resource content is about to follow... as indicated in line 8.","highlights":["This website serves as a reference site for information related to the HTTP protocol, specificaly looking at information that is not covered by the RFC specifications and some of the other official website documentation. This site concentrates on the elements of the subject matter not directly addressed by the official specification. It attempts to address practical aspects of the subject that are not covered by official specifications including how headers should be implemented in particular webservers, what security risks come with headers how to test and debug headers. The site tries to help novice users and experts alike by clearly explaining what the header does, how it should be used what the ramifications of usage are. Some headers are benign, some helpful and some should be treated with care. We take particular care to frame our information with reference to the implications of header use related to SEO (Search Engine Optimisation) rather than just regurgitating the official documentation .\n[...]\nhttp-headers.com is designed to serve as a reference site, allowing you to find header information by their type, request and response. We also have a Help Centre that allows you to validate header information in the real world by allowing you to create headers to put into your website and by making requests for pages on your site to ensure they are correct. Headers are broadly classified as request and response headers.\n[...]\nRequest headers are generated by the Client (your Browser or other software capable of asking for a web page) when asking for a page from your webserver. Request headers are used by the webserver to understand more about what your browser is asking for and how it might expect the response. For example, if your browser is capable of processing a compressed response then it might include \"Accept-Encoding: gzip, deflate\" which tells the webserver that the client can decode compressed content. This convention extends to all and any resources that require intelligence to process include media payload formats for audio, images and video.\n[...]\nConversely, Response headers are generated by the webserver for the Client in response to every resource request it receives. These headers are used by the Client in a variety of ways including processing the content of the response, caching the resource and security, to name but a few. For example, the response header \"Content-type: text/html\" tells the Client that the resource is a page of HTML and that it should be processed accordingly.\n[...]\nHTTP Headers, both request and response, are passed between Server and Client as plain text records (delimited by a carriage return) prepended to the request or response payload. By way of example, let's have a look at the interchange between Client and Server. For the purposes of this example, the ␍ indicates a Carriage Return/New Line character sequence.\n[...]\n① GET /index.html HTTP/1.1␍ ② Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8␍ ③ Accept-Encoding: gzip, deflate, br␍ ④ Accept-Language: en-GB,en;q=0.9,en-US;q=0.8␍ ⑤ Cache-Control: no-cache␍ ⑥ Connection: keep-alive␍ ⑦ DNT: 1␍\n[...]\n⑧ Host:\n[...]\n/␍\n[...]\n␍ ⑫ User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/\n[...]\n37.36 (KHTML,\n[...]\n⑬ ␍\n[...]\nThe two notworthy lines in the request are lines 1 and 13. Line 1 tells the server what resource is required and line 13, which is essentially empty, tells the server that we have finished sending headers and we are ready to receive the response.\n[...]\nLine 1 conveys the status of the request to the Client, in this case that the resource was successfully found and will be returned to the Client. The other line of particular interest is line 7. As per line 13 in the Send example, this line tells the Client that all the headers have been sent and that the resource content is about to follow... as indicated in line 8."]},{"title":"HTTP headers - display the full request headers your browser sends","url":"http://manytools.org/http-html-text/http-request-headers","snippet":"HTTP headers - display the full request headers your browser sends\n[...]\n# HTTP headers - display the full request headers your browser sends\n[...]\nWhen your browser requests a web page from a server via HTTP (HyperText Transfer Protocol), it sends a set of headers with various bits of information about itself. Below you can see the headers sent by your browser.\n[...]\n| HTTP header | Value |\n| --- | --- |\n| Baggage | sentry-environment=production,sentry-public_key=41fa59a1376ec796312848f4f17266ba,sentry-trace_id=db0fcd1804b516548fef16a0d380f0b1,sentry-org_id=4510313822748672,sentry-sampled=false,sentry-sample_rand=0.8777926847556998,sentry-sample_rate=0.1 |\n| Sentry-Trace | db0fcd1804b516548fef16a0d380f0b1-1986540c15933b7f-0 |\n| Pragma | no-cache |\n| Cache-Control | no-cache |\n| Accept-Language | en-US,en;q=0.5 |\n| Accept-Encoding | gzip, deflate, br |\n| Sec-Fetch-Dest | document |\n| Sec-Fetch-User | ?1 |\n| Sec-Fetch-Mode | navigate |\n| Sec-Fetch-Site | same-site |\n| User-Agent | Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/198.51.100.10 Safari/537.36 |\n| Upgrade-Insecure-Requests | 1 |\n| Sec-Ch-Ua-Platform | \"macOS\" |\n| Sec-Ch-Ua-Mobile | ?0 |\n| Sec-Ch-Ua | \"Not;A=Brand\";v=\"99\", \"Google Chrome\";v=\"139\", \"Chromium\";v=\"139\" |\n| Accept | text/markdown,text/html;q=0.9,application/xhtml+xml;q=0.8,application/xml;q=0.7,image/webp;q=0.6,*/*;q=0.5 |\n| Connection | close |\n| X-Accel-Internal | /internal-nginx-static-location |\n| X-Real-Ip | 198.51.100.10 |\n| Host | manytools.org |\n| Authorization |\n| Mod-Rewrite | On |\n[...]\nDisplay the full request headers your browser sends https://manytools.org/http-html-text/http-request-headers/ /140 chars Insert full link to this tool\n[...]\n### Link to this page: “Request headers”\n[...]\nYou can link to this tool using this HTML code. Simply copy and paste it into your page:\n[...]\n```\n<a href=\"https://manytools.org/http-html-text/http-request-headers/\">HTTP headers - display the full request headers your browser sends</a>\n```\n[...]\nIf you have any problems using this HTTP headers - display the full request headers your browser sends, please contact me.","highlights":["HTTP headers - display the full request headers your browser sends\n[...]\n# HTTP headers - display the full request headers your browser sends\n[...]\nWhen your browser requests a web page from a server via HTTP (HyperText Transfer Protocol), it sends a set of headers with various bits of information about itself. Below you can see the headers sent by your browser.\n[...]\n| HTTP header | Value |\n| --- | --- |\n| Baggage | sentry-environment=production,sentry-public_key=41fa59a1376ec796312848f4f17266ba,sentry-trace_id=db0fcd1804b516548fef16a0d380f0b1,sentry-org_id=4510313822748672,sentry-sampled=false,sentry-sample_rand=0.8777926847556998,sentry-sample_rate=0.1 |\n| Sentry-Trace | db0fcd1804b516548fef16a0d380f0b1-1986540c15933b7f-0 |\n| Pragma | no-cache |\n| Cache-Control | no-cache |\n| Accept-Language | en-US,en;q=0.5 |\n| Accept-Encoding | gzip, deflate, br |\n| Sec-Fetch-Dest | document |\n| Sec-Fetch-User | ?1 |\n| Sec-Fetch-Mode | navigate |\n| Sec-Fetch-Site | same-site |\n| User-Agent | Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/198.51.100.10 Safari/537.36 |\n| Upgrade-Insecure-Requests | 1 |\n| Sec-Ch-Ua-Platform | \"macOS\" |\n| Sec-Ch-Ua-Mobile | ?0 |\n| Sec-Ch-Ua | \"Not;A=Brand\";v=\"99\", \"Google Chrome\";v=\"139\", \"Chromium\";v=\"139\" |\n| Accept | text/markdown,text/html;q=0.9,application/xhtml+xml;q=0.8,application/xml;q=0.7,image/webp;q=0.6,*/*;q=0.5 |\n| Connection | close |\n| X-Accel-Internal | /internal-nginx-static-location |\n| X-Real-Ip | 198.51.100.10 |\n| Host | manytools.org |\n| Authorization |\n| Mod-Rewrite | On |\n[...]\nDisplay the full request headers your browser sends https://manytools.org/http-html-text/http-request-headers/ /140 chars Insert full link to this tool\n[...]\n### Link to this page: “Request headers”\n[...]\nYou can link to this tool using this HTML code. Simply copy and paste it into your page:\n[...]\n```\n<a href=\"https://manytools.org/http-html-text/http-request-headers/\">HTTP headers - display the full request headers your browser sends</a>\n```\n[...]\nIf you have any problems using this HTTP headers - display the full request headers your browser sends, please contact me."]},{"title":"HTTP headers - HTTP | MDN","url":"https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers","snippet":"HTTP headers - HTTP | MDN\n[...]\n# HTTP headers\n[...]\nHTTP headers let the client and the server pass additional information with a message in a request or response. In HTTP/1.X, a header is a case-insensitive name followed by a colon, then optional whitespace which will be ignored, and finally by its value (for example:`Allow: POST`). In HTTP/2 and above, headers are displayed in lowercase when viewed in developer tools (`accept: */*`), and prefixed with a colon for a special group of pseudo-headers(`:status: 200`). You can find more information on the syntax in each protocol version in the HTTP messages page.\n[...]\nCustom proprietary headers have historically been used with an`X-` prefix, but this convention was deprecated in 2012 because of the inconveniences it caused when nonstandard fields became standard in RFC 6648; others are listed in the IANA HTTP Field Name Registry, whose original content was defined in RFC 4229. The IANA registry lists headers, including information about their status.\n[...]\nHeaders can be grouped according to their contexts:\n[...]\n## Caching\n[...]\n## Message body information\n[...]\n## Redirects\n[...]\n## Request context\n[...]\n### Fetch metadata request headers\n[...]\nThe following request headers are not strictly \"\n[...]\nrequest headers\", but similarly provide information about the context of how a resource will be used. A server might use them to modify its caching behavior, or the information that is returned:\n[...]\n## Fetch storage access headers\n[...]\n## WebSockets\n[...]\n## Experimental headers\n[...]\n### Client hints\n[...]\nHTTP Client hints are a set of request headers that provide useful information about the client such as device type and network conditions, and allow servers to optimize what is served for those conditions.\n[...]\n## Non-standard headers","highlights":["HTTP headers - HTTP | MDN\n[...]\n# HTTP headers\n[...]\nHTTP headers let the client and the server pass additional information with a message in a request or response. In HTTP/1.X, a header is a case-insensitive name followed by a colon, then optional whitespace which will be ignored, and finally by its value (for example:`Allow: POST`). In HTTP/2 and above, headers are displayed in lowercase when viewed in developer tools (`accept: */*`), and prefixed with a colon for a special group of pseudo-headers(`:status: 200`). You can find more information on the syntax in each protocol version in the HTTP messages page.\n[...]\nCustom proprietary headers have historically been used with an`X-` prefix, but this convention was deprecated in 2012 because of the inconveniences it caused when nonstandard fields became standard in RFC 6648; others are listed in the IANA HTTP Field Name Registry, whose original content was defined in RFC 4229. The IANA registry lists headers, including information about their status.\n[...]\nHeaders can be grouped according to their contexts:\n[...]\n## Caching\n[...]\n## Message body information\n[...]\n## Redirects\n[...]\n## Request context\n[...]\n### Fetch metadata request headers\n[...]\nThe following request headers are not strictly \"\n[...]\nrequest headers\", but similarly provide information about the context of how a resource will be used. A server might use them to modify its caching behavior, or the information that is returned:\n[...]\n## Fetch storage access headers\n[...]\n## WebSockets\n[...]\n## Experimental headers\n[...]\n### Client hints\n[...]\nHTTP Client hints are a set of request headers that provide useful information about the client such as device type and network conditions, and allow servers to optimize what is served for those conditions.\n[...]\n## Non-standard headers"]},{"title":"Test that an HTTP request is made with a header — expect_header • httptest","url":"https://enpiar.com/r/httptest/reference/expect_header.html","snippet":"Test that an HTTP request is made with a header — expect_header • httptest Skip to contents\n[...]\nThis expectation checks that a HTTP header (and potentially header value) is present in a request. It works by inspecting the request object and raising warnings that are caught by testthat::expect_warning().\n[...]\n```\nexpect_header(..., ignore.case = TRUE)\n```\n[...]\nlogical: if`FALSE`, the pattern matching is case sensitive and if`TRUE`, case is ignored during matching. Default is`TRUE`; note that this is the opposite of`expect_warning` but is appropriate here because HTTP header names are case insensitive.\n[...]\n`NULL`, according to`expect_warning`.\n[...]\n`expect_header` works both in the mock HTTP contexts and on \"live\" HTTP requests.\n[...]\n```\nlibrary(httr)\nwith_fake_http({\n  expect_header(\n    GET(\"http://example.com\", config = add_headers(Accept = \"image/png\")),\n    \"Accept: image/png\"\n  )\n})\n#> GET http://example.com\n#> <simpleWarning: Accept: image/png>\n\n```","highlights":["Test that an HTTP request is made with a header — expect_header • httptest Skip to contents\n[...]\nThis expectation checks that a HTTP header (and potentially header value) is present in a request. It works by inspecting the request object and raising warnings that are caught by testthat::expect_warning().\n[...]\n```\nexpect_header(..., ignore.case = TRUE)\n```\n[...]\nlogical: if`FALSE`, the pattern matching is case sensitive and if`TRUE`, case is ignored during matching. Default is`TRUE`; note that this is the opposite of`expect_warning` but is appropriate here because HTTP header names are case insensitive.\n[...]\n`NULL`, according to`expect_warning`.\n[...]\n`expect_header` works both in the mock HTTP contexts and on \"live\" HTTP requests.\n[...]\n```\nlibrary(httr)\nwith_fake_http({\n  expect_header(\n    GET(\"http://example.com\", config = add_headers(Accept = \"image/png\")),\n    \"Accept: image/png\"\n  )\n})\n#> GET http://example.com\n#> <simpleWarning: Accept: image/png>\n\n```"]},{"title":"Test that an HTTP request is made with a header — expect_request_header • httptest2","url":"https://enpiar.com/httptest2/reference/expect_request_header.html","snippet":"Test that an HTTP request is made with a header — expect_request_header • httptest2\n[...]\nThis expectation checks that HTTP headers (and potentially header values) are present in a request. It works both in the mock HTTP contexts and on \"live\" HTTP requests.\n[...]\n```\nexpect_request_header(\n  expr,\n  ...,\n  fixed = FALSE,\n  ignore.case = FALSE,\n  perl = FALSE,\n  useBytes = FALSE\n)\n```\n[...]\nNamed headers to match. Values should either be a string (length-1 character), which will be passed to testthat::expect_match(), or`NULL` to assert that the named header is not present in the request. To assert that a header is merely present in the request, without asserting anything about its contents, provide an empty string (`\"\"`). Header names are always case-insensitive; header values will be matched using the following parameters:\n[...]\nlogical. If`TRUE`,`pattern` is a string to be matched as is. Overrides all conflicting arguments.\n[...]\nlogical. if`FALSE`, the pattern matching is case sensitive and if`TRUE`, case is ignored during matching.\n[...]\nlogical. Should Perl-compatible regexps be used?\n[...]\nlogical. If`TRUE` the matching is done byte-by-byte rather than character-by-character. See ‘Details’.\n[...]\n```\nif (FALSE) {\n\nlibrary(httr2)\nexpect_request_header(\n  request(\"http://httpbin.org\") %>%req_headers(Accept = \"image/png\") %>%req_perform(),\n  accept = \"image/png\",\n  `x-fake-header` = NULL\n)\n[...]\nexpect_request_header(\n  request(\"http://httpbin.org\") %>%req_headers(Accept = \"image/png\") %>%req_perform(),\n  accept = \"\"\n)\n}\n\n```","highlights":["Test that an HTTP request is made with a header — expect_request_header • httptest2\n[...]\nThis expectation checks that HTTP headers (and potentially header values) are present in a request. It works both in the mock HTTP contexts and on \"live\" HTTP requests.\n[...]\n```\nexpect_request_header(\n  expr,\n  ...,\n  fixed = FALSE,\n  ignore.case = FALSE,\n  perl = FALSE,\n  useBytes = FALSE\n)\n```\n[...]\nNamed headers to match. Values should either be a string (length-1 character), which will be passed to testthat::expect_match(), or`NULL` to assert that the named header is not present in the request. To assert that a header is merely present in the request, without asserting anything about its contents, provide an empty string (`\"\"`). Header names are always case-insensitive; header values will be matched using the following parameters:\n[...]\nlogical. If`TRUE`,`pattern` is a string to be matched as is. Overrides all conflicting arguments.\n[...]\nlogical. if`FALSE`, the pattern matching is case sensitive and if`TRUE`, case is ignored during matching.\n[...]\nlogical. Should Perl-compatible regexps be used?\n[...]\nlogical. If`TRUE` the matching is done byte-by-byte rather than character-by-character. See ‘Details’.\n[...]\n```\nif (FALSE) {\n\nlibrary(httr2)\nexpect_request_header(\n  request(\"http://httpbin.org\") %>%req_headers(Accept = \"image/png\") %>%req_perform(),\n  accept = \"image/png\",\n  `x-fake-header` = NULL\n)\n[...]\nexpect_request_header(\n  request(\"http://httpbin.org\") %>%req_headers(Accept = \"image/png\") %>%req_perform(),\n  accept = \"\"\n)\n}\n\n```"]},{"title":"Headers - Web APIs | MDN","url":"https://developer.mozilla.org/docs/web/api/headers","snippet":"The`Headers` interface of the Fetch API allows you to perform various actions on HTTP request and response headers. These actions include retrieving, setting, adding to, and removing headers from the list of the request's headers.\n[...]\nYou can retrieve a`Headers` object via the Request.headers and Response.headers properties, and create a new`Headers` object using the Headers() constructor. Compared to using plain objects, using`Headers` objects to send requests provides some additional input sanitization. For example, it normalizes header names to lowercase, strips leading and trailing whitespace from header values, and prevents certain headers from being set.\n[...]\nNote: You can find out more about the available headers by reading our HTTP headers reference.\n[...]\nA`Headers` object has an associated header list, which is initially empty and consists of zero or more name and value pairs. You can add to this using methods like append()(see Examples.) In all methods of this interface, header names are matched by case-insensitive byte sequence.\n[...]\nHeaders.append()\n[...]\nAppends a new value onto an existing header inside a`Headers` object, or adds the header if it does not already exist.\n[...]\nHeaders.get()\n[...]\nReturns a String sequence of all the values of a header within a`Headers` object with a given name.\n[...]\nHeaders.getSetCookie()\n[...]\nHeaders.set()\n[...]\nSets a new value for an existing header inside a`Headers` object, or adds the header if it does not already exist.\n[...]\nHeaders.values()\n[...]\nIn the following snippet, we create a new header using the`Headers()` constructor, add a new header to it using`append()`, then return that header value using`get()`:\n[...]\n```\nconst myHeaders = new Headers();\n\nmyHeaders.append(\"Content-Type\", \"text/xml\");\nmyHeaders.get(\"Content-Type\"); // should return 'text/xml'\n\n```\n[...]\nThe same can be achieved by passing an array of arrays or an object literal to the constructor:\n[...]\n```\nlet myHeaders = new Headers({\n  \"Content-Type\": \"text/xml\",\n});\n\n// or, using an array of arrays:\nmyHeaders = new Headers([[\"Content-Type\", \"text/xml\"]]);\n\nmyHeaders.get(\"Content-Type\"); // should return 'text/xml'\n\n```","highlights":["The`Headers` interface of the Fetch API allows you to perform various actions on HTTP request and response headers. These actions include retrieving, setting, adding to, and removing headers from the list of the request's headers.\n[...]\nYou can retrieve a`Headers` object via the Request.headers and Response.headers properties, and create a new`Headers` object using the Headers() constructor. Compared to using plain objects, using`Headers` objects to send requests provides some additional input sanitization. For example, it normalizes header names to lowercase, strips leading and trailing whitespace from header values, and prevents certain headers from being set.\n[...]\nNote: You can find out more about the available headers by reading our HTTP headers reference.\n[...]\nA`Headers` object has an associated header list, which is initially empty and consists of zero or more name and value pairs. You can add to this using methods like append()(see Examples.) In all methods of this interface, header names are matched by case-insensitive byte sequence.\n[...]\nHeaders.append()\n[...]\nAppends a new value onto an existing header inside a`Headers` object, or adds the header if it does not already exist.\n[...]\nHeaders.get()\n[...]\nReturns a String sequence of all the values of a header within a`Headers` object with a given name.\n[...]\nHeaders.getSetCookie()\n[...]\nHeaders.set()\n[...]\nSets a new value for an existing header inside a`Headers` object, or adds the header if it does not already exist.\n[...]\nHeaders.values()\n[...]\nIn the following snippet, we create a new header using the`Headers()` constructor, add a new header to it using`append()`, then return that header value using`get()`:\n[...]\n```\nconst myHeaders = new Headers();\n\nmyHeaders.append(\"Content-Type\", \"text/xml\");\nmyHeaders.get(\"Content-Type\"); // should return 'text/xml'\n\n```\n[...]\nThe same can be achieved by passing an array of arrays or an object literal to the constructor:\n[...]\n```\nlet myHeaders = new Headers({\n  \"Content-Type\": \"text/xml\",\n});\n\n// or, using an array of arrays:\nmyHeaders = new Headers([[\"Content-Type\", \"text/xml\"]]);\n\nmyHeaders.get(\"Content-Type\"); // should return 'text/xml'\n\n```"]},{"title":"My HTTP Header? Check Request - Response Headers Here","url":"https://myhttpheader.com/","snippet":"My HTTP Header? Check Request - Response Headers Here\n[...]\nYour HTTP Request Header:\n[...]\nGET / HTTP/1.1\n[...]\nUser-Agent:\n[...]\nCCBot/2.0 (https://commoncrawl.org/faq/)\n[...]\ntext/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\n[...]\nAccept-Language:\n[...]\nen-US,en;q=0.5\n[...]\nIf-Modified-Since:\n[...]\n202\n[...]\n20:38:1\n[...]\nAccept-Encoding:\n[...]\nmyhttpheader.com\n[...]\nx-forwarded-proto:\n[...]\nX-Forwarded-For\n[...]\n## Request Line\n[...]\n## Header Lines\n[...]\nHTTP Requests consist of request and header lines. The initial request line includes the method, path and HTTP version. The header lines contain fields such as Accept, Cache-Control, Host, User-Agent, etc. The browser's HTTP Request asks the server to send the resource and provides the server information that could alter the language, the rendering of the page, access to the resource, etc.\n[...]\n## Request Line\n[...]\nThe request line is the first line of the Request header. Per RFC2616 Section 5.1 the request line consists of the Request-Method (GET, POST, etc) space Request-URI (path) space HTTP Version (0.9, 1.0, 1.1) CRLF. No other CR's or LF's are allowed except at the end of the line.\n[...]\n## Header Lines\n[...]\nThere are over 30 request header line fields between HTTP versions 0.9, 1.0 and 1.1, and common non-standard header line fields.\n[...]\nCommon request header line fields include:\n[...]\nAcceptable content\n[...]\nAccept: text/plain\n[...]\nAccept-Charset\n[...]\nAccept-Charset: utf-8\n[...]\nAccept-Encoding\n[...]\nAccept-Encoding: gzip, deflate\n[...]\nAccept-Language\n[...]\nAccept-Language: en-US\n[...]\nCache-Control\n[...]\nCache-Control: max-age=0\n[...]\nContent-Length\n[...]\nContent-Length: 1708\n[...]\nContent-Type\n[...]\nContent-Type: application/pdf\n[...]\nDomain name of the server listening for the request\n[...]\nHost: myhttpheader.com\n[...]\nUser-Agent\n[...]\nClient's user-agent string\n[...]\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:25.0) Gecko/20100101 Firefox/25.0\n[...]\nHTTP Client Request Header\n[...]\n#### HTTP Server Response Header","highlights":["My HTTP Header? Check Request - Response Headers Here\n[...]\nYour HTTP Request Header:\n[...]\nGET / HTTP/1.1\n[...]\nUser-Agent:\n[...]\nCCBot/2.0 (https://commoncrawl.org/faq/)\n[...]\ntext/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\n[...]\nAccept-Language:\n[...]\nen-US,en;q=0.5\n[...]\nIf-Modified-Since:\n[...]\n202\n[...]\n20:38:1\n[...]\nAccept-Encoding:\n[...]\nmyhttpheader.com\n[...]\nx-forwarded-proto:\n[...]\nX-Forwarded-For\n[...]\n## Request Line\n[...]\n## Header Lines\n[...]\nHTTP Requests consist of request and header lines. The initial request line includes the method, path and HTTP version. The header lines contain fields such as Accept, Cache-Control, Host, User-Agent, etc. The browser's HTTP Request asks the server to send the resource and provides the server information that could alter the language, the rendering of the page, access to the resource, etc.\n[...]\n## Request Line\n[...]\nThe* Connection #0 to host 192.0.2.10 left intact
 request line is the first line of the Request header. Per RFC2616 Section 5.1 the request line consists of the Request-Method (GET, POST, etc) space Request-URI (path) space HTTP Version (0.9, 1.0, 1.1) CRLF. No other CR's or LF's are allowed except at the end of the line.\n[...]\n## Header Lines\n[...]\nThere are over 30 request header line fields between HTTP versions 0.9, 1.0 and 1.1, and common non-standard header line fields.\n[...]\nCommon request header line fields include:\n[...]\nAcceptable content\n[...]\nAccept: text/plain\n[...]\nAccept-Charset\n[...]\nAccept-Charset: utf-8\n[...]\nAccept-Encoding\n[...]\nAccept-Encoding: gzip, deflate\n[...]\nAccept-Language\n[...]\nAccept-Language: en-US\n[...]\nCache-Control\n[...]\nCache-Control: max-age=0\n[...]\nContent-Length\n[...]\nContent-Length: 1708\n[...]\nContent-Type\n[...]\nContent-Type: application/pdf\n[...]\nDomain name of the server listening for the request\n[...]\nHost: myhttpheader.com\n[...]\nUser-Agent\n[...]\nClient's user-agent string\n[...]\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:25.0) Gecko/20100101 Firefox/25.0\n[...]\nHTTP Client Request Header\n[...]\n#### HTTP Server Response Header"]}]}
