It also doubles as a very great introduction to C, if that something you're interested in. It's funny because both C and socket level programming are often a barrier, or at least they were for me. It's an attestant to the quality of Beej's guide that he introduces both simultaneously, and makes it very approachable.
This is one of those sources that helped me disproportionately grow as a programmer in a short period of time.
If you want the practical aspects of computer networks, you can try Niall Manfields' Practical TCP/IP designing, using and troubleshooting TCP/IP networks on Linux and Windows book. Granted it's a bit old (2nd edition is essentially the same 1st edition), but because you are after the essentials it should be more than fine. Here's the review of the book:
https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=122...
[0]: https://www.pearson.com/us/higher-education/program/Tanenbau...
[0] https://www.amazon.com/TCP-Illustrated-Vol-Addison-Wesley-Pr...
https://book.systemsapproach.org/index.html
The “perspective” sections at the end of every chapter are really interesting!
- Running https://certbot.eff.org/instructions
- Trying out a few different web servers (apache/nginx/caddy)
- Playing around with load-balancers on $cloud_provider.
- Spending time with docker networking (https://docs.docker.com/config/containers/container-networki...)
- Playing around with various X-Forwarded header options in the context of your application
For a web developer, the most useful skill is knowing what each and every component on the pipeline is doing before your code executes on the request. As a common eg, if your application seems to be loading stylesheets from `http://` instead of `https://` despite being loaded over HTTPS, it is often because your application didn't honor the X-Forwarded-Proto header (which most frameworks will do for you). Similarly, seeing a local IP address (192.168.x.y for eg) on a log, and realizing that you should be using the X-Forwarded-Ip by "trusting your proxy"[1] and doing it securely[2].[3].
[0]: https://www.udacity.com/course/networking-for-web-developers...
[1]: https://expressjs.com/en/guide/behind-proxies.html
[2]: https://shubs.io/enumerating-ips-in-x-forwarded-headers-to-b...
[3]: https://blog.ircmaxell.com/2012/11/anatomy-of-attack-how-i-h...
Here's one I really like, you could learn a lot just reading through all the networking-related posts here: https://jvns.ca/#computer-networking
tcp/ip rfc https://datatracker.ietf.org/doc/html/rfc1180
daryl's ip primer https://www.ipprimer.com/#/
https://blog.uidrafter.com/engineering/freebsd-jails-network...
As for books, Ivan Ristić's ModSecurity, although old, is full of tips for setting up reverse proxies.
* An Engineering Approach to Computer Networking: ATM Networks, the Internet, and the Telephone Network by S. Keshav - This is a great text on fundamentals of Networking. Nothing to do with the "Web" but everything to do with what underpins it.
* Web Protocols and Practice: HTTP/1.1, Networking Protocols, Caching, and Traffic Measurement by Krishnamurthy and Rexford - Best book i have seen yet which explains the interplay between HTTP and the underlying TCP/IP protocol suite.
* Load Balancing Servers, Firewalls, and Caches by Kopparapu.
Thanks for coming to my TED talk.