looking at how HTML exactly works from a RESTful perspective requires to look at all the different links that HTML defines. these are actually quite a bit more than just <A>
links, and based on the HTML 4.01 transitional DTD, here is the complete list of all linking elements that can be used in HTML. one interesting observation is that some of these links are not supported in today's browsers, such as the cite
attribute on <Q>
and <BLOCKQUOTE>
(you could of course always retrofit this by adding scripting packages that turn those links into actionable UI elements in the browser).
Element | Attribute | Method | Response Resource | Semantics |
---|---|---|---|---|
BODY |
background |
GET |
image/* |
texture tile for document background |
A |
href |
GET |
*/* |
URI for linked resource |
AREA |
href |
GET |
*/* |
URI for linked resource |
LINK |
href |
GET |
*/* (based on rel and/or type , more specific types may be expected) |
URI for linked resource |
IMG |
src |
GET |
image/* |
URI of image to embed |
longdesc |
GET |
*/* |
link to long description (complements alt ) |
|
usemap |
GET |
text/html (fragment must be MAP element) |
use client-side image map (often local fragment identifier) | |
OBJECT |
classid |
GET (relative to codebase ) |
application/* |
identifies an implementation |
codebase |
- | - | base URI for classid, data, archive | |
archive |
GET (multiple URIs, relative to codebase ) |
*/* |
space-separated list of URIs | |
data |
GET (relative to codebase ) |
*/* |
reference to object's data | |
usemap |
GET |
text/html (fragment must be MAP element) |
use client-side image map (often local fragment identifier) | |
APPLET |
codebase |
- | - | base URI for classid, data, archive |
archive |
GET (relative to codebase ) |
*/* |
comma-separated archive list | |
code |
GET (relative to codebase ) |
*/* |
applet class file | |
object |
GET (relative to codebase ) |
*/* |
serialized applet file | |
Q , BLOCKQUOTE |
cite |
GET |
*/* | URI for source document or msg |
INS , DEL |
cite |
GET |
*/* | info on reason for change |
FORM |
action |
GET/POST (depending on method ) |
POST Request: application/x-www-form-urlencoded or multipart/form-data (depending on enctype )Response: */* |
server-side form handler |
INPUT |
src |
GET |
image/* |
for fields with images |
usemap |
GET |
text/html (fragment must be MAP element) |
use client-side image map (often local fragment identifier) | |
FRAME , IFRAME |
longdesc |
GET |
*/* |
link to long description (complements title) |
src |
GET |
*/* |
source of frame content | |
HEAD |
profile |
GET (often treated as a name only) |
*/* |
named dictionary of meta info |
BASE |
href |
- | - | URI that acts as base URI |
SCRIPT |
src |
GET |
application/* |
URI for an external script |
for |
- | - | reserved for possible future use |
Comments
You can follow this conversation by subscribing to the comment feed for this post.