Slide 7 of 20
We often find that we need to be able to associate generic bits of information with a particular URL. This is especially true of versioning systems which often need to record system specific information. A generic arbitrarily extensible attribute system will answer this need without requiring the implementation of a whole raft of new headers. In other words, a HTTP delivered URL specific registry.
Such a registry is likely to grow quite large and thus it is not feasible for it to be sent with every message. Furthermore it is likely that at any one time a program will only be interested in a few entries in the registry. Thus we need a means to not just retrieve and set the entire registry but also to retrieve and set specific elements within it. In addition, for the sake of efficiency, these registry actions should be attachable to any method.
There also exists the problem of name space collisions. Central administration of the name space would prove burdensome. A combination of assigned prefixes and randomly generated IDs seems a cleaner solution. However we should also specify a common subset of attributes in order to facilitate communication.
Finally while we need attribute headers for efficiency, attributes become even more powerful if we have an attribute method. This allows us to perform attribute modification independently of other actions.