Claims
- 1. A system for servicing web page requests, the system comprising a server that responds to user requests for web pages, said server comprising a memory;
schema data stored in the memory of the server, said schema data specifying past and present schemas used to encode data structures into cookies stored on user computers; a conversion component executed by the server, said conversion component configured to use the schema data to identify and decode the data structures encoded within cookies received from user computers to generate temporary data structures within the memory of the server; and application code executed by the server, said application code configured to use the temporary data structures to customize web pages requested by the user computers.
- 2. The system of claim 1; wherein the conversion component is not specific to a particular type of data structure.
- 3. The system of claim 1, wherein the conversion component supports a plurality of different types of data structures.
- 4. The system of claim 1, wherein the schema data specifies the content and format of each of a plurality of data structures that are encoded within the cookies.
- 5. The system of claim 1, wherein the schema data includes, for a given data structure that is encoded within cookies, an identification of primitive fields of the given data structure and datatypes of said primitive fields.
- 6. The system of claim 5, wherein the schema data further includes address offsets of the primitive fields.
- 7. The system of claim 1, wherein the schema data includes, for a given data structure that is encoded within cookies, an indication of a range of schema versions for which the data structure is valid, wherein the conversion component uses said range to determine whether a particular data structure encoded within a cookie is valid.
- 8. The system of claim 1, wherein the schema data includes information about at least one data structure that is no longer in use.
- 9. The system of claim 1, wherein the conversion component uses the schema data to determine which of a set of the data structures encoded within a received cookie are to be decoded for use.
- 10. The system of claim 1, wherein the conversion component uses the schema data to determine whether a particular data structure that is encoded within a received cookie is to be decoded for use.
- 11. The system of claim 1, wherein the conversion component is an executable function that is called by the application code.
- 12. The system of claim 1, wherein the schema data is cached with random access memory of the server.
- 13. The system of claim 1, wherein the schema data is stored within a file in the memory of the server.
- 14. The system of claim 1, wherein the schema data is stored within a table in the memory of the server.
- 15. The system of claim 1, wherein the conversion component uses a checksum included within a received cookie to evaluate whether the cookie has been modified.
- 16. The system of claim 1, wherein the conversion component applies a decryption algorithm to encrypted information contained in the cookies received from the user computers.
- 17. The system of claim 1, further comprising an encoding component that encodes data structures into cookies according to a current schema specified by the schema data.
- 18. A method of extracting information from cookies, the method comprising
(a) receiving, at a server, cookie data that has a data structure encoded therein, said cookie data received from a user computer; (b) determining whether the data structure encoded within the cookie data is valid; and (c) if and only if the data structure encoded within the cookie data is determined to be valid in step (b), decoding the encoded data structure to reproduce the data structure within a memory of the server.
- 19. The method of claim 18, wherein the validity of the data structure as determined in step (b) reflects whether the data structure is currently used by any applications running on the server.
- 20. The method of claim 18, wherein step (b) comprises identifying a version of a schema used to encode the data structure within the cookie data.
- 21. The method of claim 18, wherein step (b) comprises using schema data stored within the memory of the server to determine whether the data structure is valid.
- 22. The method of claim 18, wherein a plurality of data structures are encoded within the cookie data, and the method comprises determining which of the plurality of data structures should be fully decoded.
- 23. The method of claim 18, further comprising using the data structure as reproduced in step (c) to customize a web page requested by the user computer.
- 24. The method of claim 18, wherein step (c) is performed by executable code that is not specific to a particular type of data structure.
- 25. The method of claim 18, wherein the data structure includes primitives of at least one of the following data types: 16-bit integers, 32-bit integers.
- 26. A server system that performs the method of claim 18.
- 27. A computer program that embodies the method of claim 18 stored within a computer readable medium.
- 28. A method of generating cookie data for storage on a computer of a user, the method comprising:
identifying a set of data structures to be encoded within the cookie data; encoding the set of data structures within the cookie data according to schema data stored within a computer memory, said schema data specifying how the set of data structures is to be encoded within the cookie data; and incorporating into the cookie data at least one of the following to facilitate extraction of the set of data structures from the cookie data: (a) a schema identifier, (b) the schema data.
- 29. The method of claim 28, wherein the method comprises incorporating the schema data into the cookie data.
- 30. The method of claim 28, wherein the method comprises incorporating a schema identifier into the cookie data, said schema identifier identifying one of a plurality of schemas used over a period of time to encode data structures within cookie data.
- 31. The method of claim 28, wherein the set of data structures is encoded within the cookie data using executable code that is not specific to a particular type of data structure.
- 32. The method of claim 28, wherein the set of data structures includes noncharacter. primitives.
- 33. The method of claim 28,.wherein the set of data structures includes primitives of at least one of the following data types 16-bit integers, 32-bit integers.
- 34. The method of claim 28, further comprising incorporating a checksum into the cookie data to permit subsequent detection of whether the cookie data has been modified.
- 35. The method of claim 28, wherein the method is performed in an off-line mode to reduce a delay experienced by a user.
- 36. A computer-readable medium comprising cookie data generated according to the method of claim 28.
- 37. A computer system configured to perform the method of claim 28.
- 38. A computer-readable medium that stores a computer program embodying the method of claim 28.
- 39. A method for using browser cookies to store structured data, the method comprising:
storing schema data on at least one server computer of a web site system, said schema data specifying schemas used by executable software to (a) encode data structures within cookies for storage on user computers, and (b) decode said cookies to extract the data structures when the cookies are returned by the user computers; and modifying the schema data over time to add data structures to, and remove data structures from, a set of data structures encoded within cookies by the executable software.
- 40. The method of claim 39, wherein the schema data is modified according to a set of rules to enable the executable software to decode cookies encoded using both past and present schemas.
- 41. The method of claim 40, wherein the rules are enforced by a management layer.
- 42. The method of claim 39, wherein the executable software is not specific to a particular type of data structure.
RELATED APPLICATIONS
[0001] This application is a continuation of U.S. patent application Ser. No. 09/494,712, filed Jan. 31, 2000, which claims the benefit of U.S. provisional application No. 60/118,266, filed Feb. 2, 1999.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60118266 |
Feb 1999 |
US |
Continuations (1)
|
Number |
Date |
Country |
Parent |
09494712 |
Jan 2000 |
US |
Child |
10694509 |
Oct 2003 |
US |