Transferred from: https://lvwenhan.com/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/485.html?hmsr=toutiao.io&utm_medium= Toutiao.io&utm_source=toutiao.io
Writing goals
This article is intended for many "application software engineers" in the Chinese Internet, specifically, for Web back-end engineers (Java, PHP), Web front-end engineers, Mobile development Engineers (IOS, Android). This article will start from the copper wire, all the way to the HTTP, for everyone to analyze a real "network."
Source of content of writing origin
Two days ago I told a friend who was going to do IOS for a couple of hours on the internet, paving the way for his interview, and before I knew it, I realized that the content would be a rich network tutorial for software engineers.
Why me
I installed the system, starting from their own web site to understand PHP technology, the university through the outsourcing into a web full stack, after graduating from the enterprise because the recruitment is not satisfied with IOS so I wrote swift--then Swift released six months ago, the basic library is scarce and flawed, so I built a lot of wheels , which has a network library, so I have a deep understanding of HTTP (in fact, super simple not what good in-depth), and engaged in HTTPS pinning, plus I do the backend and operations, their own application, purchase, deployment certificate, to HTTPS have some understanding; The concept of routers, switches, gateways, DHCP, DNS and so on have a personal experience, plus I occasionally will from I bought not read the heap of books to find out "graphic http/tcp,ip/network hardware" What to look at, plus this explanation of opportunity, finally mastery.
Talk about Mastery.
The point of my understanding of computer in college is "compiling", the recent mastery is that I read God's book "Cs:app", and have a deeper understanding of the computer system: hardware and operating system are closely coordinated; the performance of the current x86_64 PC is mostly from the concept of "cache" + "optimistic". I will write an article to share my understanding when I have a chance.
This article conventions
In this series of articles, we will make a few important conventions as follows:
- The goal of this article is to let software engineers understand the nature of each layer of the network, not everything.
- Some of the parts I will explain in the form of an analogy to make it easier for the reader to understand, not every detail is completely true
- If there's something wrong with me, you're welcome to point it out in the comments.
Written Byjohnlui programmer, Swift contributor, is writing "visual programming and Auto Layout for IOS".
Related logs:
Network knowledge that software engineers need to know: from Copper wire to HTTP (quad)--TCP and routers
Network knowledge that software engineers need to know: from copper wire to HTTP (v)--http and HTTPS
Network knowledge that software engineers need to know: from Copper wire to HTTP (iii)--TCP/IP
Network knowledge that software engineers need to know: from Copper wire to HTTP (ii)-Ethernet and switch
← Network knowledge that software engineers need to know: from Copper wire to HTTP (ii)--Ethernet and Switch startups CI system Ultimate Solution: gitlab-ci→
Network knowledge that software engineers need to know: from Copper wire to HTTP (i)--preface