Wednesday, December 24, 2008

On the science of computing

Is there science among the following bytes?

GET /index.html HTTP/1.0
Host: www.syntelos.com


Syntax and semantics are perhaps the principle areas of science in computing, at least from the perspective that dominates my world. They invent and describe the tools we employ for manipulating bits, bytes and words into increasingly more interesting interactions.

The more subtle the work, whether science or art, the more invisible or transparent it can be. Larger purposes are elusive until illuminated. And greater profundity can have more power.

From here...



Take for example one of the first issues in the latter day web network interface. What's the difference between the following.

PUT / HTTP/1.0
PUT /index.html HTTP/1.0

And should

GET / HTTP/1.0

always respond with

HTTP/1.0 301 Moved Permanently
Location: http://www.syntelos.com/index.html

?

Should the server permit


PUT / HTTP/1.0

is the classic question that recognizes a

GET / HTTP/1.0

that returns a

HTTP/1.0 200 OK

as a vanity hack with the cost of implying

PUT / HTTP/1.0

to the tool that used it on behalf of the user who wanted to edit her home page.

If we make the null PUT work, how will the server deal with content types and file names. What does the null get return when the file was created by the null put?

When the system becomes defined in code where it could have been defined in user data, everyone looses.

What do I need to do to such a system to change the file name returned by or redirected to by a null get?

How do I represent multiple choices for the selection of the product of a null get? Check your terms closely for application to all cases.

Solving for all variables, when we work this little problem, we discover that the null get should redirect to a file name, and the null put should be a bad request.


To there...



Where is the science in the art of delivering more interesting interactions? Is it in the server side software architecture? Is it in the server side systems architecture? Or is it in the server network interface?

It's in the server network interface where all of these issues and more fall onto one simple, clean edge.

No comments: