Try to follow along, this is important. You have authentication headers, and other headers, and the entry body. You have to put everything somewhere. You could put the headers in the headers, and the body in the body. That seems simple. You could put the body in the headers, but that would be silly, because it’s the body, and the body goes in the body. Nobody is suggesting this. Nobody is suggesting that we put the body in the headers. Everybody likes the body in the body. You could put the headers in the body. Some people like that. Some people like putting the headers in the body. But then where do you put the body? Well, you put the body in the body too. So then you have both the headers and the body in the body. So then the body is not really the body, at least not all of the body. Some of the body is really the headers. Which part of the body? Well, the headers part of the body. The body part of the body is the body, and the headers part of the body is the headers. But not all of the headers can go in the body. Just the authentication headers. The other headers still go in the headers, because they have to go in the headers. At least I think they have to go in the headers. Maybe we could put those headers in the body too. Not the body part of the body. I mean the headers part of the body. Maybe we could put everything in the body. But that would be silly, because they’re the headers, and the headers go in the headers. So that’s what we did: we put the headers in the headers, and the body in the body, because that seemed simpler.
§
Nicely done!
*KABLAM!!*
That was the sound of my head getting caught in an infinite loop and exploding.
— Ben Dyer ![]()
That was so Godel Escher Bach.
— pat ![]()
So, uhm, where does my headache go? :D
Very nice!
— Patricia ![]()
There’s a body in the window seat!
I am _so_ glad we’re done using frames :)
Damn. My brain just turned into a Möbius strip.
— Ethan ![]()
I’m glad there’s no such thing as footers.
If this weblog were available on audio, it would be read by Tim Curry.
— James ![]()
Why put the head into the body.. if the head is full with style?
Now that that’s settled, where do the footers go?
— aharden ![]()
Methinks the placement of the footers depends on the subject. Occasionaly they will need to be placed squarely in someone’s mouth.
I am “body and soul” with you.
View Source on this page. I see a head tag. I wonder why that is?
— Sam Ruby ![]()
(Knowing that was a rhetorical question by Sam, I’ll still answer AFAIK.)
In general, in-page headers are (meta?)data that applies to the whole document/page/representation, but are included in the “body” because it makes the document more useful as a stand-alone artifact. The page can be useful when saved to disk, etc.
HTTP headers vs. HTML headers, if that’s what we’re talking about, are orthogonal. HTTP headers talk about network transport, about how (and if) the server should respond to the client. HTML headers talk about the representation, and how it relates to other resources. I think authorization information (that is, information the server uses to determine whether to service a request) falls clearly in the HTTP header zone.
The <meta http-equiv> muddies the water a bit, but is a widely acknowledged hack. It happens to make the web as we know it work, but that doesn’t mean it was a good design choice. Web servers serving based on file-on-disk extensions or inaccessible and poorly maintained config files were breaking things, and http-equiv is a way that the document author can have some say in the matter.
Is that a fault in the original design of HTTP and HTML, or is it a fault in HTTP server implementation?
Since I don’t really know what the point of this post is, I’ll just point out what the issue is to me– in-page headers serve to make the document useful on it’s own, or apply to the document as a whole (and are specific to that document).
Headers should be included in-page only if they fit that criteria.
The ‘butt’, is it part of the body or part of the header? Or does it depend on the person?
— CowPi ![]()
Footers? Well, you can have trailers in HTTP if you’re using chunked encoding…
-Dom
There are lots of layers of headers and bodies, and all but one of them has the next layer of headers in its body.
Ethernet frames (if we’re using Ethernet) have a header and a payload. The payload is (usually) an IP packet.
IP packets have a header and a payload. The payload will contain, for this example, a TCP message.
The TCP message itself has a header and a payload. TCP packets contain information which allows them to be assembled with other packets to form a resulting payload: an HTTP message.
An HTTP message has a header and a body. The body (often) contains an HTML document.
The HTML document contains a header and a body.
Layers apon layers of headers and bodies. Each adds more information relevant at its own level. This layering is what allows us to mix and match protocols and formats. These layers are a good thing.
Someone broke the encapsulation at some point and allowed HTTP header fields to appear within the HTTP payload only in the case where that payload is HTML. That was a bad thing. Let us not make that mistake again.
I’m not really sure what my point is, but then I’m not really sure what yours is either…
Jeremy,
+1. Nicely explained.
— Joe ![]()
Could someone provide a little context for this post?
“You must do what you feel is right, of course”
- Obi-Wan Kenobi
hm
Gödel, Escher, Bach.
http://www.amazon.com/exec/obidos/tg/detail/-/0465026567?v=glance
It’s called the Transitive Butt Property.
And it clearly states that:
stupid(butt) >= stupid(head)
The stupidity of somebody’s butt is greater than or equal to the stupidity of that person’s head.
- Where that leaves the body… I don’t know.
Joe,
I assume the context is PEAW, and there seems to be some disagreement on whether the authentication mechanism described in yesterday’s post (or some other “header” should go in the transport layer or the document layer.
Sam Ruby’s trackback (#15) will give you slightly more context.
I assume his wiki (http://www.intertwingly.net/wiki/pie/FrontPage) has all the context you could wish for, but I’ve not seen a page pertinent to this point.
…er I feel like my head has left my body.
I am no longer accepting public comments on this post, but you can use this form to contact me privately. (Your message will not be published.)
§
firehose ‧ code ‧ music ‧ planet
© 2001–8 Mark Pilgrim