Slashdot Mirror


HTTP Developer's Handbook

honestpuck writes "To say that understanding HTTP is crucial for web development might seem like saying water is wet, yet many people don't take the time to fully understand the protocol. This book could be a good help. HTTP Developer's Handbook from SAMS gives you a great deal of information about the protocol in a clearly understood fashion." Read on for the rest of honestpuck's review. HTTP Developer's Handbook author Chris Shiflett pages 280 publisher Developer's Library/SAMS rating 6 - Serious flaws reviewer Tony Williams ISBN 0672324547 summary Mixed volume with fair look at HTTP protocol

One of the strangest feelings I've ever had reading a book is that I have a better opinion of it than does the author. Shiflett spends most of the introduction convincing the reader that this is a useful book and it seems that the start of most chapters is another few sentences telling me why the chapter is incredibly useful for me to read. I felt like yelling "I'm convinced, I'm convinced."

The book is broken up into 6 parts: 'Introducing HTTP,' 'HTTP Definition,' 'Maintaining State,' 'Performance,' 'Security,' and 'Evolution of HTTP.'

The first section and a large part of the introduction are the sort of information that is covered elsewhere in just as good a detail: it basically covers the obvious. The second section covers the HTTP protocol itself, with a good discussion of requests and responses, including all the nitty gritty details of the headers in some detail. This is the really useful heart of the book and it covers 80 of the 280 pages. The third, fourth and fifth sections give a too-concise look at their subject matter, I felt the book could have given much more detail here. The last section is a waste of space; in this volume I don't really need to have a small amount of information about SOAP and XML-RPC.

This book is well-written; I believe its two fatal flaws are that Shiflett seems unsure of his own book and that the book itself tries to offer everything for a developer while explaining it all for the newcomer. I think that had Shiflett given up on the newcomer and given the developer greater depth (with a lot more examples) he would have delivered a much better book. For a developer, the volume is much too light on example code, the book is not really 'practical,' more 'informative.'

This might be a good volume for a library, either a corporate or school library. It provides the salient information in one spot in a concise and readable manner. I think that an individual might find it a less than totally useful book for the money -- you're likely to have already have a volume or two that covers most of the information, and with most languages in web development having libraries that take care of most of the low-level stuff for you, it becomes less and less necessary to really understand the bottom level. Personally, I'll keep it for the 80 page section on the HTTP definition so I have it all in one spot.

You can purchase HTTP Developer's Handbook from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

24 of 206 comments (clear)

  1. w3c by stonebeat.org · · Score: 4, Insightful

    why would i wanna "buy" a book, that has info that is already available on http://www.w3c.org?
    You can also join the W3c mailing lists to get in-depth info on any of the technology stacks.

    1. Re:w3c by bmj · · Score: 3, Insightful

      why would i wanna "buy" a book, that has info that is already available on http://www.w3c.org?

      Because (and get ready for this, it's a bit shocking) some people actually prefer reading a book to staring a computer screen (and not everyone has access to a printer to make hardcopies of the w3c specs).

      GASP!

      --
      Whereof we cannot speak, thereof we must be silent. --Ludwig Wittgenstein
    2. Re:w3c by Frymaster · · Score: 4, Insightful
      what the hell would a book about HTTP teach you, that you cant already get for free at w3c?

      do you work for the riaa or something?

      people buy books (and cd's) even though they can be garnered free over the 'net because:

      1. they are easy to read
      2. they are more portable
      3. they look good on yr shelf
      4. they are immutable. a book doesn't 404 you suddenly

    3. Re:w3c by mwood · · Score: 2, Insightful

      "they are immutable. a book doesn't 404 you suddenly"

      Nor do they mysteriously change, sometimes radically, every time the author has a new idea and hacks his text again.

      And don't forget:

      5. It's easy to lay out a book on my desk, alongside the six other books I'm referring to concurrently, and see them all at the same time. <hubris>If one book can tell you everything you need to know about your project, what you are doing is too small to be called a "project".</hubris>

  2. Not surprising the author didn't know his niche... by Ratface · · Score: 4, Insightful

    If you think about it there are very few people who actually *need* to get down and dirty with the HTTP protocol itself. OK - most of those who do are probably reading this and I'll be shouted down, but in reality there aren't that many people who'll be jumping up and down saying "Wow! All I ever wanted to know about HTTP!!".

    --

    A little planning goes a long way...
  3. HTTP knowledge required? by nepheles · · Score: 4, Insightful
    I'm not convinced that web-developers need a knowledge of HTTP. Even sessions can be handled very transparently with newer web-dev languages/dialects like PHP and JSP. Sure, it is a benefit to have an understanding, but the average developer is better off putting his work into understanding Dreamweaver or Photoshop.

    Web-development does not require a knowledge of HTTP, and this is the way it should be. You shouldn't need to understand ASCII, etc., to use a word-processor.

    --
    ((lambda x ((x))) (lambda x ((x))))
    1. Re:HTTP knowledge required? by GigsVT · · Score: 3, Insightful

      Web-development does not require a knowledge of HTTP

      Ever sent a file to a browser that is dynamically generated, and isn't an inline image or a html/txt page?

      Or maybe you wanted to handle file uploads, while the languages have built in functions for handling them, those functions are usually pretty bad at handling anything special, or providing feedback to the user on the progress of the upload.

      It helps to know HTTP. It's not one of those things you need to know, but without knowing it, you won't be able to do anything that the language developers didn't have planned for you.

      --
      I've had enough abrasive sigs. Kittens are cute and fuzzy.
    2. Re:HTTP knowledge required? by JimDabell · · Score: 4, Insightful

      I'm not convinced that web-developers need a knowledge of HTTP.

      For hobby sites, no. For proper sites, definitely. Far too many people build a site without any understanding of how the browser talks to the server. Common mistakes include:

      • Thinking web statistics are reliable.
      • Wasting bandwidth by massive amounts
      • Slowing down sites by not being able to take advantage of HTTP pipelining, more efficient caching, etc.
      • Thinking the Referer and User-Agent headers are reliable.
      • Trusting request variables.
      • Serving different content to different clients without providing a Vary header (in other words, letting caches screw things up).

      It's not a trivial topic that can be glossed over. You could literally waste gigabytes of bandwidth a month on a high profile site (or single slashdotting) if you don't pay attention to the interaction between server and client. While it's certainly possible to build a site without knowing the first thing about HTTP, it shouldn't be encouraged.

    3. Re:HTTP knowledge required? by websensei · · Score: 2, Insightful
      I couldn't disagree more.
      How about a fundamental understanding of cookies?
      From the text:

      Although cookies are most often described in conversation as if they are entities (for example, "a Web server sends you a cookie"), they are much easier to understand at a functional level if you consider them an extension of the HTTP protocol, which is actually more correct."

      (Shiflett goes on to describe the Set-Cookie and Cookie headers.)

      Relying on a given scripting language's manipulation of HTTP requests/responses without understanding what's actually going over the wire is a mistake.

      By the same reasoning, it's also a mistake for a web developer to use WYSIWYG HTML editor like Dreamweaver, without understanding the markup that's being generated...

      For your average web developer, reading this book (which should take just a couple sittings over one weekend) would be a worthwhile investment.

      /$0.02

      --

      La via sola al paradiso incommincia nel inferno
    4. Re:HTTP knowledge required? by MikeFM · · Score: 2, Insightful

      The average web developer would be better off with a basic grasp of bandwidth issues. Maybe then we wouldn't have to wait 30 seconds or more to access such a large majority of pages.

      I'd especially like to whack developers who put large Java or Flash intro pages.. especially those with no way to skip them. Okay like it's cool that you can write your company name in a fancy font and make it zoom around but really who gives a damn? If you want to make movies then make movies. If you want to make a website then make a damn website. Websites don't need neato special effects. :)

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
  4. In-depth books are few & far between? by 192939495969798999 · · Score: 3, Insightful

    It seems that more and more books that are coming out are geared for the novice... or perhaps, we're all just getting that much better? It's important to ask yourself how good you really are. I have found that there are practically no good resources for programming information above a certain level, i'd say Junior Programmer, other than the Knuth books or perhaps a few others. Anyone else know of any advanced topic books that are really good?

    --
    stuff |
  5. As always, "a good reference" by goldspider · · Score: 5, Insightful
    Not to troll here, but why does every book review here conclude with the reviewer's assertion that the book they reviewed is a good reference?

    After reading the mostly-negative review, how am I supposed to believe that it is in fact "a good volume"? The reviewer even says that most people would find it to be a waste of money!

    What does it take for a reviewer to come out and declare "THIS BOOK ISN'T WORTH THE PAPER IT IS PRINTED ON"??

    --
    "Ask not what your country can do for you." --John F. Kennedy
  6. Good Review by Khomar · · Score: 3, Insightful

    Shiflett spends most of the introduction convincing the reader that this is a useful book and it seems that the start of most chapters is another few sentences telling me why the chapter is incredibly useful for me to read. I felt like yelling "I'm convinced, I'm convinced."

    This may have been the first sign of trouble. I always hate it when salespeople or authors waste my time telling me what I already have grasped and understood. After a while, I start to question whether I really should be interested it in anymore if they are so concerned that I won't be.

    I think I will try to check this out at the library for a quick refresher course, but it doesn't sound like one to add to my own library. It is good to see an honest review that doesn't immediately gush with adoration and praise while glossing over the flaws. While another poster questioned the frequency of reviews from honestpuck, the quality of this review leads me to ask him to keep up the good work.

    --

    I believe in de-evolution. God made the world perfect, man fell, and its been going downhill ever since!

  7. Just write your own web server by joshv · · Score: 5, Insightful

    Just write your own web server, in whatever language. You will become intimately familiar with the HTTP protocol. That is if you implement form processing, cookies, and multi-part encodings and such.

    -josh

    1. Re:Just write your own web server by bigdavex · · Score: 2, Insightful
      Just write your own web server, in whatever language. You will become intimately familiar with the HTTP protocol. That is if you implement form processing, cookies, and multi-part encodings and such.
      And how would you approach that?
      • Coding at random until all user agents worked with it.
      • First, reading something about the protocols.
      --
      -Dave
  8. Far too many web developers.... by wowbagger · · Score: 5, Insightful

    Far too many web developers forget what the FIRST T stands for....

  9. Is understanding syntax trees crucial... by Anonymous Coward · · Score: 1, Insightful

    ...in source code development.

    understanding HTTP is crucial for web development

  10. HTML may be playing a bigger role .. by igorko · · Score: 5, Insightful

    Sure, some developers won't grasp HTTP is a stateless protocol. Others remain ignorant of the fact it's trivial to spoof and continue to rely on the the refferer as means of session tracking. But that's not where the big problems are. They lie in misuse of HTML.

    1. most people use it to "design pages", not represent data. H1, H2 .. tags are miserably neglected (in favour of, say, FONT). Flash, on the other hand, is used where it shouldn't be.

    2. small fonts (guess what: verdana is NOT cool), sans-serif for main text, low-contrast hard-to-read colors, and so on.

    3. propriatery HTML (say IE 6.0+ only), fixed-resolution design

    and many other bugs of the sort. Reading W3C's HTML 4.01 & CSS2 specifications and some usability guides (www.useit.com) should be more insightful than following up on HTTP headers. What works for me is knowing it's stateless, what this means, cookies and url rewriting, and SSL/TSL. The only time I used cleancut HTTP was when testing certain servers via telnet 80.

    Verisign and networksolutions are an additional problem, but that's another story altogether.

    For a webdesigner, the protocol details are of little use. There are more important things to study.
    -i

  11. Re:Honest Criticism by ukpyr · · Score: 2, Insightful

    It seems to me, most of the confusion comes from people who use the term "web developer" to mean someone who uses HTML to make static web pages.

    Maybe it's regional or something but to me and people I know, "web developers" are programmers who use server-side technologies like mod_[perl/php/whatever], ASP, JSP etc etc etc who would actually care about what is happening in the HTTP request process because they (can) directly influence it.

    I call people who use things like Dreamweaver, Frontpage, or notepad to write HTML docuements "web designers". These same people also use graphic design software to make graphics for websites with photoshop, illustrator, or whatever.

    two very different skillsets, two very different types of training/knowledge

  12. The Difference by phlyingpenguin · · Score: 2, Insightful

    You just discovered the difference between making pages like the pros, and being a pro.

  13. the book is not really 'practical,'. . . by kfg · · Score: 3, Insightful

    . . .more 'informative.'

    And so we descend, bit by pleasant little bit, into hell, where "information" isn't "practical," where knowledge of reality isn't "necessary" and where, it turns out, the enviroment is a cube farm populated by clueless code monkeys happy to be there.

    Sorry for wading into this thread after yelling "Flame On!", but reading most of the responses is just plain depressing.

    The older I get the more I understand why Fabian Pascal tends to come across as a bit bitchy. He's earned the right.

    Helloooooo, are there any geeks left in the house?

    My mom has a degree in fine arts. Not a very geeky field, right? She took chemistry for years so she could understand her materials, particularly glazes. Is this necessary to throw a pot? No. Is it necessary to be a good ceramicist? Yes.

    A real artist always knows her materials, right down to the last atom.

    Otherwise you're just a semiskilled mechanic working on an assembly line.

    Of course, it that was your goal when you set out . . .

    KFG

    KFG

  14. Re:Not surprising the author didn't know his niche by jrumney · · Score: 2, Insightful

    The people who really need to know already have what they need in the RFCs. But there are a surprising number of web developers who don't know the first thing about the protocol. Like you, they think they don't need to know the details, and end up making big mistakes as a result. A book like this deserves a place on every web developer's bookshelf.

  15. Re:I barely understand the acronym... by xeo_at_thermopylae · · Score: 3, Insightful
    HyperTextTransferProtocol

    While not the original interpretation, I prefer to think of the WWW as a giant state engine with all possible pages (including possible dynamically-generated content) as already created and available. Then as you navigate from one page to another, i.e., are transferred from page to page, you are changing from one state to another.

    This way of envisioning the WWW is called Representational State Transfer(REST) and is documented by Roy Fielding, one of the WWW's architects, in his doctoral dissertation.

    This is not the original interpretation, however, and in both HTTP 1.0 - RFC 1945 and HTTP /1.1 - RFC 2068 the term "transfer" is used in the original sense of transferring data.

  16. Re:Not surprising the author didn't know his niche by MikeFM · · Score: 2, Insightful

    Worse, most web developers arn't geeky enough to know what an RFC is or how to look one up. A lot of them don't know anything about http at all other than it's the four letters at the start of most URLs. That's fine. The great thing about the web is that it's easy enough that you can be a developer without knowing how things work. You'll be a better developer though if you do know how it works. Knowing http is especially useful if you do any actual programming. If you want to know how to do some of the fancier tricks of web development you'll need to learn at least the basics of http.

    --
    At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.