| Storage Analysis |
Scope | Original Source | Where Stored Between Requests | Where Stored At Runtime |
Server | CF Server/CFML | Shared Memory | Shared Memory |
Application | CFML | Shared Memory | Shared Memory |
Session | CFML | Shared Memory | Shared Memory |
Client | CFML | DB or Registry | Request Memory |
Cookie | CFML/HTTP Header | Browser | Request Memory |
Request | CFML | (Source) | Request Memory |
Variables | CFML | (Source) | Module Memory |
Attributes | CFML | (Source) | Module Memory |
Caller | CFML | (Source) | Module Memory |
Form | HTML/HTTP Request | (Source) | Request Memory |
URL | HTML/HTTP Request | (Source) | Request Memory |
CGI | Web Server | (Source) | Request Memory |
| Characteristics |
Scope | Shared Memory (Lock!) | Persistant Across Requests | Available In CFMODULE | Can Handle Complex Data | Read Only | Available Across Cluster |
Server | Yes | Yes | Yes | Yes | | |
Application | Yes | Yes | Yes | Yes | | |
Session | Yes | Yes | Yes | Yes | | |
Client | | Yes | Yes | | | Yes |
Cookie | | Yes | Yes | | | Yes |
Request | | | Yes | Yes | | Yes |
Variables | | | | Yes | | Yes |
Attributes | | | | Yes | | Yes |
Caller | | | | Yes | | Yes |
Form | | | Yes | | <4.5 | Yes |
URL | | | Yes | | <4.5 | Yes |
CGI | | | Yes | | Yes | Yes |
* Inside <CFMODULE>, the parent template's VARIABLES variables can be accessed with the CALLER scope. It is intended to be used as a method for reading and setting local variables in the parent template directly from inside the <CFMODULE>. While it is not commonly used as a local scope, it truly is a local scope, since it is a COPY of the parent template VARIABLES scope. CALLER variables get copied back to the parent template VARIABLES when the <CFMODULE> call ends, and then die.