HTTP Developer's Handbook
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.
Understand the protocol? Heck, I've been doing web development for 10 years and I can't even remember what the acronym means....
What does that second T stand for?
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.
Consensus is good, but informed dictatorship is better
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...
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))))
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 |
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
Every developer should be forced to write a simple HTTP server just so that they understand the basic mechanisms of the protocol. But the full details go way, way beyond what I'd expect someone on my team to know (or spend time learning) unless they were writing a server, a HTTP client, or low-level HTTP interface functions.
An efficient developer is one who is protected from the details of the technical world, and who can spend his energy and time on the functional aspects of his problem.
That's my conclusion after 20 years of (mainly successful) software projects.
Ceci n'est pas une signature
I was prepared to have the reviewer reveal whether it was a get or a post in the first paragraph.
On another point, is six thumbs up the lowest ever in a Slashdot review?
Fellow Slashdotters, prepare to be dazzled! Well, as Timothy already mentioned, the name of the book that I read was HTTP Developer's Handbook. It's about these ... protocols. HTTPD ... with requests ... and ... responses ... and XML-RPC ... Did I mention this book was written by a guy named Chris Shiflett? And published by the good people at Developer's Library/SAMS. So, in conclusion, on the Slashdot scale of one to ten, ten being the highest, one being the lowest, and five being average, I give this book ... a six. Any questions? Nope? Then I'll just sit down.
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!
shouldn't there be a time frame given for how long it will take you to learn? how the hell am i supposed to give my client an accurate lead time if i can't tell him (10 Minutes | 24 Hours | 21 Days)!?!?
:)
what a crock...
well, it's nothing one behind the ear wouldn't cure
this was a great book as an overview, and as a quick reference for details on http headers.
it's eminently readable, and while I agree w the reviewer that it's light on examples, the writing is clear enough that in most cases, examples would be redundant.
very little filler and very readable, easy to read in 1 or 2 sittings and come away with a much better handle on the underpinnings and details of the request/response model. the web is not as well understood by page authors / web developers as it should be, and this is an excellent book to help remedy the situation.
I give it a solid 7/10 and am glad I read it.
it's within easy reach on my shelf....
La via sola al paradiso incommincia nel inferno
no, it's like saying "To be able to drink water you must first understand the various ways in which hydrogen and oxygen can combine"
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
Same link minus the ccats-20 crap. Why bother to even post anonymously?/
http://www.amazon.com/exec/obidos/ASIN/0672324547
Morphing Software
Far too many web developers forget what the FIRST T stands for....
www.eFax.com are spammers
...in source code development.
understanding HTTP is crucial for web development
I know an Amazon Associate who is willing to sell you that book, just be sure to add "inertishomepa-20" to the end of any url string to get the "special deal." I hear his current specials are on SAMS Teach Yourself books right now.
HTTP may be critical to the web, but it is not critical to web development. All you need to know is HTML and you can develop pages like the pros.
Well, according to his personal Web site, this Tuesday, September 16th, he started with 'Learning Perl Objects References & Modules', and this Wednesday, September 17th, he already started Practical mod_perl.
i have a feeling this amazon dummy is inertia@yahoo.com some observation will help confirm the facts.
I wonder how much he actually makes doing that. I bet it's a significant amount.
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.
.. tags are miserably neglected (in favour of, say, FONT). Flash, on the other hand, is used where it shouldn't be.
1. most people use it to "design pages", not represent data. H1, H2
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
If they did then no one would click the Barnes and Noble link with the Slashdot referral code in it.
why would you buy a book on HTTP?????
Huh? I thought the HTTP protocol was already developed.
I reported ccats-20 to Amazon spam police, saying his link overwhelmed the message boards. So the money amount he made is probably declining heavily right now towards $0.00.
Thank you whoever modified this cretin down between my reading his post and this reply. To the original poster: to learn French, write a novel in that language. You will become intimately familiar with the French language. That is if you use vocubalary, grammar, and idiom and such.
regards.
Not just using POST for changing state server side and GET for other stuff is a mistake that is often made...
The REST stuff is good on this...
Also the W3C document on URIs, Addressability, and the use of HTTP GET and POST, a document being debated on the W3C Technical Architecture Group (TAG) list is debating at the moment [ thread 1 | thread 2 ] also well worth reading...
I wonder if REST is covered in this book?
Check out MKDoc a mod_perl CMS
I appreciate the honest feedback, and I'd like to address a few concerns/criticisms/whatever that I have seen mentioned.
Convincing the reader of the importance of HTTP - The first few pages do focus a lot on explaining why HTTP is important to a Web developer. Just look at all of the comments that mention how knowing HTTP is useless, and you can hopefully see why I think this is important. I see questions on various mailing lists all the time that reflect a general lack of knowledge in this area; developers don't really understand cookies, when SSL is needed (or what it does), how to secure their sessions (or applications in general), how to keep up with data from one page to the next, and all sorts of things.
The book caters to beginners - I want the book to cater to both the beginner and the experienced developer. HTTP isn't rocket science, and it can provide a great foundation for Web developers to build from. For those who are already experienced, the book can provide a good reference to the protocol (if you're experienced, you should also know that RFC 2616 isn't a substitute for this) and can help people gain a deeper understanding of things they already know a little about. I don't think a book has to confuse the reader to be considered advanced, and I wasn't writing to impress anyone. My approach was to try and help as many people as I could.
Learn Dreamweaver, not HTTP - Well, people with this opinion might be a lost cause, but what happens when your next place of employment thinks FrontPage is the only way to write Web applications? In general, I think it is better to teach people fundamental things and let them apply those things in any way that they want.
I also have a companion Web site for the book at http://shiflett.org/books/http-developers-handbook .
So, basically, you lied?
And is fine after a reboot
AT&ROFLMAO
That's funny....this guy is complaining about a slashvertisement amazon link and he's linking to his software company in his slashvertisement sig
www.cgisecurity.com/rfc>
yeah, but for a noble cause.
You just discovered the difference between making pages like the pros, and being a pro.
As I see it, it is a handy reference. Not telling anyone anything new or exciting, or even giving information that can't be printed out from the Web. But it's a handy condensing of things that an HTTP-interfacing developer might need to know.
I think you're right that few people will need to know all of it.
It's called editing. Some publishing houses have them, others don't. And those which have them may call them "Development Editors" or whatever the name they affix to them. Unfortunately, many don't have people qualfied to adequately provide technical feedback to an author. They have technical editors who can tell the editor whether the material is technically correct or not, but by the time the TE has seen the material, the development of the book is poured in concrete.
The hope is these people can guide the authors to provide a book of reasonable quality, starting with beginning: Who is This Book For? the outline, etc. etc. As you can tell from reading online, 98% of the people who write, even informally, cannot do so to save their life. That percentage doesn't drop much [even] when they use a spell-checker. You can claim this is not a big deal but would you buy a book written as sloppy and flawed as the material you see here?
The publishers don't help much. They want to see books day-and-date with the software, technology, etc. i.e., ASAP, and if it's with a new release of software, the book should be available on the shelf the same day the software is available. With all of the pressure, it's tough.
"...had Shiflett given up on the newcomer and given the developer greater depth...."
Talk to the editors. They seem to think everything should be For Dummies nowadays. "Lauguage X for People who Already Know How to Program" books are rare gems indeed.
OTOH I think that a lot of those fat books on the store shelves spend *too much* space on sample code. Many of them seen to be primarily code libraries on an eccentric distribution medium, and I often find myself wondering why they didn't just publish the code as files on a CDROM with the little threads of text tucked into the top of each directory. I do understand that it's hard to lead the reader through a program of useful size in book format, but it still bothers me.
I found the HTTP Pocket Reference to be an incredibly useful book in those times when you just have to know what that status code or header means. There is enough explanation in this book that it can be used as a guide to HTTP.
Patriotism is the opium of the masses
. . .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
Please don't confuse "designer" with "developer".
I'm engrossed in HTTP at the moment writing a proxy server with HTTP::Proxy in Perl that appends authentication headers to requests from specific IPs that have specific cookies set so that I can log into all sites I visit that use basic authentication without having to remember my damn logins and passwords all the time.
Next step will be to combine with WWW::Mechanize module (probably) to automate logins to other sites that use standard forms for login.
Understanding HTTP is crucial if you're trying to do shit like that.
.02
cLive ;-)
-- Trinity in high heels carrying a whip: The donimatrix - there is no spoonerism
A friend of mine 'cooked' dinner by mixing two different types of cereal and adding milk.
If you want to do a good job, you need to understand what is going on. Sure, you can 'hack' a page w/ frontpage, but setting the dimension of a 800x600 pixel image to 80x60 may work for a single page, but its still a 'hack'.
Other industries have standards to comply with to make sure things work as they should. Building codes ensure that the building isn't going to collapse on its occupants.
Do you need to understand how the technology works in order to do the job, well, maybe not, but you do if you want to do a good job.
In case anyone wanted to call this guy and tell him spammers suck, here are his details.
(How I found this out:
search google for ccats.
Comes up with http://ccats.com/
View source of page - magic phrase amazon.com ccats-20! Voila here's our spammer.
(That whole page is a mess of nasty spammy links and affiliates).
Here's the spammers' details
Registrant Contact:
CCATS
Abdullah Haydar (abdullah@abdullah.net)
5867644119
FAX: 5094635868
42252 Barchester Rd
Canton, MI 48187
US
Administrative Contact:
CCATS
Abdullah Haydar (abdullah@abdullah.net)
5867644119
FAX: 5094635868
42252 Barchester Rd
Canton, MI 48187
US
Billing Contact:
CCATS
Abdullah Haydar (abdullah@abdullah.net)
5867644119
FAX: 5094635868
42252 Barchester Rd
Canton, MI 48187
US
Technical Contact:
CCATS
Abdullah Haydar (abdullah@abdullah.net)
5867644119
FAX: 5094635868
42252 Barchester Rd
Canton, MI 48187
US
You can use this one to support the author (me):
http://www.amazon.com/exec/obidos/ASIN/0672324547Or, here is the plain link (it's not cheaper; you just give Amazon more money):
http://www.amazon.com/exec/obidos/ASIN/0672324547This book could be a good help. HTTP Developer's Handbook from SAMS gives you a great deal of information about the protocol
You can buy the book
OR
You can read the documentation of RFC 2616 - Hypertext Transfer Protocol -- HTTP/1.1 and save some money.
You can also read: HTTP/1.1 Specifications
Easy to understand and best of all FREE!!
You must be the guy who designed the new tvguide.com site then!
Blar.
Idiot, I'm not a spammer. I simply check that Amazon has a better deal and let people know by posting a referral link, which is identified as a referral link. I've never sent any spam (which is email) and I wouldn't call a referral link once in a while "flooding message boards." The links on the ccats pages are for my friends to click when they are buying from certain merchants where I give them a kickback from the commission, i.e. an additional discount on money they would spending anyway. Unless you visit my page, you'd never see the ads.
The RFC 2616 - IETF Draft Standard (June 1999) is available in a number of formats at W3C, including pdf.
It's a useful reference and I keep a copy on my desk. If you think you're a web developer and you aren't familiar with http you're sadly deluded.
Dave
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.
Actually, everyone who designs and debugs moderately complex web sites / apps needs to know more about the protocol than you get in a "how to build a web site" type book. Sure, you can dig stuff out of the RFCs, but that's hardly a pleasant way to learn. (Great for reference, though.) I'm reading this book right now, and finding lots of good stuff in it that I can use for web development.
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.
Posing this as a sample question, but it's something I've been looking into recently, and the HTTP protocol documents themselves have not been very enlightening so far. The docs say that either side can close the HTTP connection, and some references seem to say that the client has primary responsibility to do so. However, I've discovered that many servers like opening "sticky" 9000 second connections, apparently so they can stuff more advertising at you at their convenience. (Amazon and Yahoo seem to be especially big abusers.) My router usually has about 5-600 open connections because of this, which is part of a longer story...
Freedom = (Meaningful - Coerced) Choice != (Speech | Beer^2), and sad sock puppets' bad mods avail them naught.
How does this book translate into making yourself more marketable for your next job or even more valuable for your current job?
With the last churn in technology in the last 7 years due to the internet, does learning another transient standard really matter?
Hmmm, a section defining HTTP: 80 pages
Pure coincidence? I think not.
.
Punctanym: alternate spelling of words using punctuation or numerals in place of some or all of its letters; see 'leet'
Hi Abfullah, I mostly agree with you (although it is possible to spam message boards and newsgroups, happens a lot), however people on slashdot prefer amazon to get the referal money instead of joe bloggs, which is a bit strange IMHO.
Of course, buy not buying through the link in the story, you dont support slashdot.
While testing some software I'm working on I killed the dates on a few posts on my weblog.
'Learning Perl Objects, References & Modules' I actually started a few months ago - my review's been on /. since early August. I'm not sure what the date on the 'Practical mod_perl' post should be but I know I've had it for a while. (Good book BTW - writing the review at the moment).
Tony Williams
Hogwash.
That's like saying a technical understanding of the telecommunications network is crucial for making a phone call.
Once again, bn.com has about the worst price on the web ($39.99). buy.com has it for $26.59:
Really? Please explain. What do I need to know, besides Content-type, Location and cookies, which are the only headers a web developper is ever likely to have to work with - and, as the review mentions, most languages used for web development already have librairies to handle anyway.
Perhaps the part about HTTPS could be of some interest - I'm quite curious about the whole certificate thing - but the review didn't say anything about it.
Coming to think of it, the review is a complete piece of crap and doesn't say anything of interest about either the protocol or the book. So, could you please enlighten me on the use of knowing HTTP, since the reviewer forgot to do so?
Karma: Could be worse (could be raining)
I understand what you were saying in the main point of your comment, & I agree with you. This blockquote caught my attention, however. Would you explain to me [a layman] why it is so inefficient, please? I've some basic-intermediate programming skills in C.
testing out my trending skills
Just because your language has an easy way to do things doesn't mean it's not helpful to know how it does them. Otherwise, if something breaks you'll have no idea what's wrong.
:)
One reason is that sometimes it's a lot easier or more effecient to write your own little webserver to fill some niche than it is to write a module or CGI for an existing webserver. That can be especially useful if you have something that is going to be taking a lot of hits but is very simple in nature. Cut out all the overhead of something like Apache and you can let the machine breath a lot easier.
Or if you understand how http handles caching you can often much improve the caching of your website. Especially with dynamic content this is important because usually such content doesn't cache well at all. Good caching will please both your clients (who get a more responsive site) and your boss (who gets lower bandwidth charges).
There are lots of things you can do if you know how. Maybe the book that was reviewed mentions some.. no idea since I didn't read it.
At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
You can find out about SSL without buying the book. That is one of the free chapters:
http://shiflett.org/books/http-developers-handbook /chapters/18
m
testing out my trending skills