<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.secondlife.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ninamori+Writer</id>
	<title>Second Life Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.secondlife.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ninamori+Writer"/>
	<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/wiki/Special:Contributions/Ninamori_Writer"/>
	<updated>2026-07-19T08:07:45Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlGetHTTPHeader&amp;diff=497243</id>
		<title>LlGetHTTPHeader</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlGetHTTPHeader&amp;diff=497243"/>
		<updated>2009-09-28T06:31:03Z</updated>

		<summary type="html">&lt;p&gt;Ninamori Writer: Changed llSay to llOwnerSay so the IP doesnt go to public chat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function&lt;br /&gt;
|func_id=349|func_sleep=0.0|func_energy=10.0|mode&lt;br /&gt;
|func=llGetHTTPHeader|return_type=string&lt;br /&gt;
|p1_type=key|p1_name=request_id|p1_desc=A valid HTTP request key.&lt;br /&gt;
|p2_type=string|p2_name=header|p2_desc=Header value name.&lt;br /&gt;
|func_footnote&lt;br /&gt;
|func_desc&lt;br /&gt;
|return_text=that is the value for &#039;&#039;&#039;header&#039;&#039;&#039; for &#039;&#039;&#039;request_id&#039;&#039;&#039;.&lt;br /&gt;
|spec=&lt;br /&gt;
===Generated Headers===&lt;br /&gt;
These headers are automatically generated by the simulator, they were not actually sent by the requesting client. They supply information about the request to make parsing easier.&lt;br /&gt;
&lt;br /&gt;
Sample URL: [https://sim3015.aditi.lindenlab.com:12043/cap/a7717681-2c04-e4ac-35e3-1f01c9861322/foo/bar?arg=gra {{HoverTextStyle|style=color:green;|&amp;lt;nowiki&amp;gt;https://sim3015.aditi.lindenlab.com:12043/cap/a7717681-2c04-e4ac-35e3-1f01c9861322&amp;lt;/nowiki&amp;gt;|2={{String|x-script-url}} = {{String|https://sim3015.aditi.lindenlab.com:12043/cap/a7717681-2c04-e4ac-35e3-1f01c9861322}}}}{{HoverTextStyle|style=color:blue;|/foo/bar|2={{String|x-path-info}} = {{String|/foo/bar}}}}?{{HoverTextStyle|style=color:red;|1=arg=gra|2={{String|x-query-string}} = {{String|1=arg=gra}}}}]&lt;br /&gt;
&lt;br /&gt;
{{{!}} class=&amp;quot;lltable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! header&lt;br /&gt;
! description&lt;br /&gt;
! example&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} style=&amp;quot;white-space: nowrap;&amp;quot; {{!}} &amp;quot;x-script-url&amp;quot;&lt;br /&gt;
{{!}} The base url, as originally received from [[llRequestURL]]/[[llRequestSecureURL]]&lt;br /&gt;
{{!}} &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;https://sim3015.aditi.lindenlab.com:12043/cap/a7717681-2c04-e4ac-35e3-1f01c9861322&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} style=&amp;quot;white-space: nowrap;&amp;quot; {{!}} &amp;quot;x-path-info&amp;quot;&lt;br /&gt;
{{!}} Any trailing path information from the requested url&lt;br /&gt;
{{!}} &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;/foo/bar&amp;lt;/font&amp;gt;&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} style=&amp;quot;white-space: nowrap;&amp;quot; {{!}} &amp;quot;x-query-string&amp;quot;&lt;br /&gt;
{{!}} Any query arguments, the text past the first &amp;quot;?&amp;quot; in the url&lt;br /&gt;
{{!}} &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;arg=gra&amp;lt;/font&amp;gt;&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} style=&amp;quot;white-space: nowrap;&amp;quot; {{!}} &amp;quot;x-remote-ip&amp;quot;&lt;br /&gt;
{{!}} IP address of the host that made the request&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}}&lt;br /&gt;
&lt;br /&gt;
===Common Headers===&lt;br /&gt;
&lt;br /&gt;
{{{!}} class=&amp;quot;lltable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! header&lt;br /&gt;
! description&lt;br /&gt;
! example&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} style=&amp;quot;white-space: nowrap;&amp;quot; {{!}} &amp;quot;user-agent&amp;quot;&lt;br /&gt;
{{!}} The user-agent header as reported by the requester &lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}}&lt;br /&gt;
&lt;br /&gt;
===[[llHTTPRequest]] Headers===&lt;br /&gt;
{{LSL_Constants/HTTP_Headers|lower-case=*}}&lt;br /&gt;
|caveats=* LSL is not a CGI environment&lt;br /&gt;
** &amp;quot;Content-Type&amp;quot; is an example of a normal header name, in a CGI environment the name would be &amp;quot;HTTP_CONTENT_TYPE&amp;quot;.&lt;br /&gt;
* This header information is valid for 30 seconds, or until [[llHTTPResponse]] is called.&lt;br /&gt;
* The header names listed above are incorrect - they should all be fully lower case (i.e. x-secondlife-shard, x-secondlife-object-name, x-secondlife-object-key, x-secondlife-region, etc.&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
key url_request;&lt;br /&gt;
 &lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        url_request = llRequestURL();&lt;br /&gt;
    }&lt;br /&gt;
    http_request(key id, string method, string body)&lt;br /&gt;
    {&lt;br /&gt;
        if (url_request == id)&lt;br /&gt;
        {&lt;br /&gt;
            url_request = &amp;quot;&amp;quot;;&lt;br /&gt;
            if (method == URL_REQUEST_GRANTED)&lt;br /&gt;
            {&lt;br /&gt;
                llOwnerSay(&amp;quot;URL: &amp;quot; + body);&lt;br /&gt;
                if(llGetAgentSize(llGetOwner()))&lt;br /&gt;
                    llLoadURL(llGetOwner(), &amp;quot;&amp;quot;, body);&lt;br /&gt;
            }&lt;br /&gt;
            else if (method == URL_REQUEST_DENIED)&lt;br /&gt;
            {&lt;br /&gt;
                llOwnerSay( &amp;quot;Something went wrong, no url. &amp;quot; + body);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
            list headers = [ &amp;quot;x-script-url&amp;quot;, &amp;quot;x-path-info&amp;quot;, &amp;quot;x-query-string&amp;quot;, &amp;quot;x-remote-ip&amp;quot;, &amp;quot;user-agent&amp;quot; ];&lt;br /&gt;
            integer pos = ~llGetListLength(headers);&lt;br /&gt;
            while( ++pos )&lt;br /&gt;
            {&lt;br /&gt;
                string header = llList2String(headers, pos);&lt;br /&gt;
                llOwnerSay(header + &amp;quot;: &amp;quot; + llGetHTTPHeader(id, header));&lt;br /&gt;
            }&lt;br /&gt;
            llOwnerSay( &amp;quot;body: &amp;quot; + body);&lt;br /&gt;
            llHTTPResponse(id, 200, body);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llGetFreeURLs]]}}&lt;br /&gt;
{{LSL DefineRow||[[llRequestURL]]}}&lt;br /&gt;
{{LSL DefineRow||[[llRequestSecureURL]]}}&lt;br /&gt;
{{LSL DefineRow||[[llReleaseURL]]}}&lt;br /&gt;
{{LSL DefineRow||[[llHTTPResponse]]}}&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_events=&lt;br /&gt;
{{LSL DefineRow||[[http_request]]}}&lt;br /&gt;
|also_articles=&lt;br /&gt;
{{LSL DefineRow||[[LSL http server]]}}&lt;br /&gt;
{{LSL DefineRow||{{Wikipedia|List_of_HTTP_headers|Wikipedia:List of HTTP headers}}}}&lt;br /&gt;
|notes&lt;br /&gt;
|deepnotes=&lt;br /&gt;
|history=&lt;br /&gt;
*{{SVN|1836|rev=112899 |trunk=*|anchor=file22|ver=|ser=}}&lt;br /&gt;
|cat1=HTTP&lt;br /&gt;
|cat2=HTTP/Server&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Ninamori Writer</name></author>
	</entry>
</feed>