I would add one thing: get to know HTTP. Even a basic understanding will prevent you from making costly mistakes.
Gopher protocol. DNS protocol. IRC protocol. HTTP protocol. HTTPS protocol. All fine.
This is especially prevalent in .NET land, where there are mechanisms for storing data in hidden forms and hiding the statelessness away from the user.