At present, I am studying the detailed explanation of tcp/ip. I would like to ask, when are the specific problems encountered in web development, the knowledge of tcp/ip and http can be used to solve the relevant problems well?
Of course, the http protocol should be familiar with. The simplest thing is that you write a web service, you need to send cookie, you need to set the cache time, and you need to choose whether to use get or post. These are all the contents of the http protocol, so I usually ask a few commonly used http header during an interview. If all of them know, they are basically old birds.
The knowledge of tcp/ip is really not very common. For the first time, I really know that three-way handshake is to check an internal network database call error. Through tcpdump, it is to check whether the client is disconnected or the server is disconnected. If you still need to manage the server, then when setting the relevant parameters in /etc/sysctl.conf, you must know what all the things that start with net.ipv4.tcp_ mean.
In addition, most web services cannot be separated from network services such as database cache. Their protocols are not http, and they are basically encapsulated on tcp protocol, using long connection or short connection, using no connection pool, and how large the connection pool is. I believe these issues still need to be considered.
“What I said above is all wrong”, in fact, what I really want to say is that as a technician, there is usually no harm in learning from all aspects of technology. What we have learned is one thing, and the design ideas and ways of thinking that we come into contact with in the learning process are the most valuable things. In my opinion, those who are only interested in knowledge are usually those who have little knowledge.