From Second Life Wiki
The viewer (and other client applications) can request capabilities from the simulators to gain access to certain features.
- Map from public URL to private URL
- Cap set <map><key>Asset upload</key>
- <key>Seed capability</key>
- Viewer knows public URL
- Internally, backbone stores both public and private URL
Flow for getting capabilities
- Viewer contacts login server requesting a particular capability
- Login server contacts sim
- Sim contacts backbone, sending a private uri corresponding to an action or service
- Backbone generates and returns a public uri corresponding to the private uri
- Do not rely on the form of a capability, other than it must be http: or https:. Capabilities from the same source needn't point to the same host or port, and the path needn't start /cap.
- To get a list of the capabilities that the latest Second Life client is requesting, use this command:
wget -q -O - https://bitbucket.org/lindenlab/viewer-release/raw/tip/indra/newview/llviewerregion.cpp | grep 'capabilityNames.append' | sed 's/^[ \t]*//;s/capabilityNames.append("//;s/");//'