Difference between revisions of "LlGetHTTPHeader"
Jump to navigation
Jump to search
m |
m |
||
Line 18: | Line 18: | ||
! example | ! example | ||
{{!}}- | {{!}}- | ||
{{!}} "x-script-url" | {{!}} style="white-space: nowrap;" {{!}} "x-script-url" | ||
{{!}} The base url, as originally received from [[llRequestURL]]/[[llRequestSecureURL]] | {{!}} The base url, as originally received from [[llRequestURL]]/[[llRequestSecureURL]] | ||
{{!}} <font color="green"><nowiki>https://sim3015.aditi.lindenlab.com:12043/cap/a7717681-2c04-e4ac-35e3-1f01c9861322</nowiki></font> | {{!}} <font color="green"><nowiki>https://sim3015.aditi.lindenlab.com:12043/cap/a7717681-2c04-e4ac-35e3-1f01c9861322</nowiki></font> | ||
{{!}}- | {{!}}- | ||
{{!}} "x-path-info" | {{!}} style="white-space: nowrap;" {{!}} "x-path-info" | ||
{{!}} Any trailing path information from the requested url | {{!}} Any trailing path information from the requested url | ||
{{!}} <font color="blue">/foo/bar</font> | {{!}} <font color="blue">/foo/bar</font> | ||
{{!}}- | {{!}}- | ||
{{!}} "x-query-string" | {{!}} style="white-space: nowrap;" {{!}} "x-query-string" | ||
{{!}} Any query arguments, the text past the first "?" in the url | {{!}} Any query arguments, the text past the first "?" in the url | ||
{{!}} <font color="red">arg=gra</font> | {{!}} <font color="red">arg=gra</font> | ||
{{!}}- | {{!}}- | ||
{{!}} "x-remote-ip" | {{!}} style="white-space: nowrap;" {{!}} "x-remote-ip" | ||
{{!}} IP address of the host that made the request | {{!}} IP address of the host that made the request | ||
{{!}} | {{!}} | ||
Line 42: | Line 42: | ||
! example | ! example | ||
{{!}}- | {{!}}- | ||
{{!}} "user-agent" | {{!}} style="white-space: nowrap;" {{!}} "user-agent" | ||
{{!}} The user-agent header as reported by the requester | {{!}} The user-agent header as reported by the requester | ||
{{!}} | {{!}} |
Revision as of 14:13, 31 August 2009
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Summary
Function: string llGetHTTPHeader( key request_id, string header );0.0 | Forced Delay |
10.0 | Energy |
Returns a string that is the value for header for request_id.
• key | request_id | – | A valid HTTP request key. | |
• string | header | – | Header value name. |
Specification
Generated Headers
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.
Sample URL: https://sim3015.aditi.lindenlab.com:12043/cap/a7717681-2c04-e4ac-35e3-1f01c9861322/foo/bar?arg=gra
header | description | example |
---|---|---|
"x-script-url" | The base url, as originally received from llRequestURL/llRequestSecureURL | https://sim3015.aditi.lindenlab.com:12043/cap/a7717681-2c04-e4ac-35e3-1f01c9861322 |
"x-path-info" | Any trailing path information from the requested url | /foo/bar |
"x-query-string" | Any query arguments, the text past the first "?" in the url | arg=gra |
"x-remote-ip" | IP address of the host that made the request |
Common Headers
header | description | example |
---|---|---|
"user-agent" | The user-agent header as reported by the requester |
llHTTPRequest Headers
Header | Description | Example data |
---|---|---|
connection | Connection options | close |
cache-control | Maximum response age accepted. | max-age=259200 |
x-forwarded-for | Used to show the IP address connected to through proxies. | 127.0.0.1 |
via | Shows the recipients and protocols used between the User Agent and the server. | 1.1 sim10115.agni.lindenlab.com:3128 (squid/2.7.STABLE9) |
content-length | The size of the entity-body, in decimal number of octets. | 17 |
pragma | The message should be forwarded to the server, even if it has a cached version of the data. | no-cache |
x-secondlife-shard | The environment the object is in. "Production" is the main grid and "Testing" is the preview grid | Production |
x-secondlife-region | The name of the region the object is in, along with the global coordinates of the region's south-west corner | Jin Ho (264448, 233984) |
x-secondlife-owner-name | Legacy name of the owner of the object | Zeb Wyler |
x-secondlife-owner-key | UUID of the owner of the object | 01234567-89ab-cdef-0123-456789abcdef |
x-secondlife-object-name | The name of the object containing the script | Object |
x-secondlife-object-key | The key of the object containing the script | 01234567-89ab-cdef-0123-456789abcdef |
x-secondlife-local-velocity | The velocity of the object | 0.000000, 0.000000, 0.000000 |
x-secondlife-local-rotation | The rotation of the object containing the script | 0.000000, 0.000000, 0.000000, 1.000000 |
x-secondlife-local-position | The position of the object within the region | (173.009827, 75.551231, 60.950001) |
user-agent | The user-agent header sent by LSL Scripts. Contains Server version. | Second Life LSL/16.05.24.315768 (http://secondlife.com) |
content-type | The media type of the entity body. | text/plain; charset=utf-8 |
accept-charset | Acceptable character sets from the server. Q being the quality expected when sending the different character sets. | utf-8;q=1.0, *;q=0.5 |
accept | Media types the server will accept. | text/*, application/xhtml+xml, application/atom+xml, application/json, application/xml, application/llsd+xml, application/x-javascript, application/javascript, application/x-www-form-urlencoded, application/rss+xml |
accept-encoding | Acceptable content encodings for the server. | deflate, gzip |
host | The internet host being requested. | secondlife.com |
|
Caveats
- LSL is not a CGI environment
- "Content-Type" is an example of a normal header name, in a CGI environment the name would be "HTTP_CONTENT_TYPE".
- This header information is valid for 30 seconds, or until llHTTPResponse is called.
- 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.
Examples
<lsl> key url_request;
default {
state_entry() { url_request = llRequestURL(); } http_request(key id, string method, string body) { if (url_request == id) { url_request = ""; if (method == URL_REQUEST_GRANTED) { llSay(0,"URL: " + body); if(llGetAgentSize(llGetOwner())) llLoadURL(llGetOwner(), "", body); } else if (method == URL_REQUEST_DENIED) { llSay(0, "Something went wrong, no url. " + body); } } else { list headers = [ "x-script-url", "x-path-info", "x-query-string", "x-remote-ip", "user-agent" ]; integer pos = ~llGetListLength(headers); while( ++pos ) { string header = llList2String(headers, pos); llSay(0,header + ": " + llGetHTTPHeader(id, header)); } llSay(0, "body: " + body); llHTTPResponse(id, 200, body); } }
}
</lsl>See Also
Events
• | http_request |
Functions
• | llGetFreeURLs | |||
• | llRequestURL | |||
• | llRequestSecureURL | |||
• | llReleaseURL | |||
• | llHTTPResponse |
Articles
• | LSL http server | |||
• | ![]() |