I personally know otherwise competent Java backend devs that have no idea how http works at all. Pipelining, gzip/deflate, Cache-control headers, XSS, uri concepts, bandwidth consumption, proxies, etc...not even the foggiest clue. There's just so much breadth, abstraction, inversion-of-control, and pressure to deliver in corporate environments. There's little incentive to be a big picture person when you're rewarded solely for closing out stories and pushing out change requests. The resulting hit in quality is atrocious.