I have done web programming through PHP, so I know the basics of HTML, CSS, and sessions. Nontheless, there's probably a lot of concepts and theory behind web development which I'm probably missing since my original approach came from knowing a language, not a platform itself.
Where does one go to learn the practices and general theory, applicable for all programming languages, about:
-Proper HTML and CSS coding, techniques, and best practices
-Differences in browser rendering
-Web site design
-Optimization for loading
-Session management, cookies
-Client-side scripting, Javascript
-Security (this is a biggie)
-Development paradigms
-Template languages
My question basically arises from the fact that nowadays most sites seem like a spaghetti mesh of embedded and external CSS and Javascript, AJAX, server-side scripts, APIs and frameworks that manage everything under the sun and have a million different ways of doing the same thing (from security to forms to validation to code generation), and it seems there is no authoritative source for any of this; and when you stick to any framework there seems to be a lot "magic" going on which hides an unknown level of complexity (GWT's preferred use needs client-side caching, Django provides modules for handling ORM, ASP.NET has a template language which maps in weird ways to client-side variables, etc.)