I wrote this article to relax myself for a week, to introduce my learning experience, and to recommend my application to the homepage. Thank you ~ I am LinuxC programmer, focus on server programming and server architecture and optimization, read the source code involves light... "> <LINKhref =" http://www.php100.com//statics/style/h
I wrote this article to relax myself for a week, to introduce my learning experience, and to recommend my application to the homepage. Thank you ~
I am a Linux C programmer who focuses on server programming and server architecture and optimization. I have read the source code about lighttpd, nginx, jabberd2, and memcached. I am mainly keen on lighttpd and apache, the design and implementation of Web servers such as nginx have a source code-level understanding of their architecture and design details.
Listening to the C language has become insensitive, and I have certain ideals and prospects for future entrepreneurship, so I do not want to stay in the underlying coding design stage, and hope that the superstructure will also be sublimated, in this way, we can help lower-level buildings to become a super programmer compatible with lower-level buildings.
As mentioned above, the focus at first was on the apache source code. After reading the Apache source code for a few days, I felt that my life was short and I could not spend all of my time on it. So I bought apache source code analysis. with the help of this magic, Apache prefork and worker's multi-process architecture and implementation details are all taken into mind. It is because of Apache's learning that too many http and mod functions are completely unknown, so I decided to use a lightweight source code: lighttpd to conduct a detailed source code analysis and swear to death.
Reading the source code was not very difficult at first, because I had a memcached source code reading experience, so I had a lot to learn when I was reading the peripheral code (relative to the core code. As I read the core code, I found that the basic knowledge of HTTP and WEB servers is very lacking.
Therefore, I purchased the book "building a high-performance Web site" and read it in three days. It is hard to say what I learned. I used them to search for excellent blog posts through Baidu and use them to access the HTTP protocol, the WEB server architecture design and the composition of the entire site have made significant breakthroughs, although at this time there is not much feeling and knowledge to connect. As we continue to read and search such source code, the lighttpd code has been thoroughly read, and some plug-ins (Mod) have been read, in addition, I still have some source code-level questions about the design of the Plugin architecture (This problem has been thoroughly understood by the company's practice in combination with Jabberd2 and actual development ).
In the next period of time, I will constantly think about the lighttpd source code and discover problems. So I will search and think more, review the source code details, and repeat the source code system. But there are still a few questions left, so I have to start to read the nginx code and hope to find the answer. Of course, this source code is read-only a small part, mainly in the http request parse part and multi-process working model and I/O part.
At this time, the interaction implementation principle of HTTP protocol has reached a certain degree of understanding, with the help of "building high performance..." This book provides a detailed introduction to the http protocol and a thorough understanding of all http fields.
At this point, I found that I had to say too much, so I had to quickly go over to the Web learning stage.
The reason for learning Web is very simple. The article also mentioned at the beginning that I want to do my own thing, and the fastest way is nothing more than mobile terminals or Web applications, web applications can be applied on PCs and mobile terminals, and Web applications are also an important promotion platform for any application. Secondly, Web servers can quickly set up non-Web applications, its own distributed Protocol (Http), simple Access Method (get/post), stateless transient connection features itself is a perfect thing, especially for those who have studied Web server implementation, I can even see byte streams under the protocol... (Haha)
That is, after my internship at the company, I quickly came into contact with the C language to develop an HTTP server. I needed to accept any legitimate HTTP requests and store and forward their data. This process is quickly developed and implemented using the http_parser library provided by XML + Nginx. Based on the epoll multi-process architecture, the source code of jabbered2 also needs to be read (it took more than a week to read the RFC protocol and source code in the company ).
As more and more people are dealing with the Web, and the company requires everyone to master C/PHP, the Web learning path is coming soon.
It is always hard to start from 0 and requires perseverance. At first, I was always unable to find the correct learning path. I used to come to CSDN to listen to your suggestions and provide some advice for my plan, just like my current achievements, I like to write an article to share and relax (and show off ~). After consulting, I thought that the html, css, js, ajax, and php in front of me are all magical things. How can I learn so much. Helpless, I can only learn it slowly and have an infinite desire for knowledge. In w3school, I spent at most three days reading html, xhtml, css, js, ajax, php, and mysql, the content in the left sidebar is completely read. But I have never typed a line of code, and I soon forgot to finish it.
I put it down for several days and never had the motivation to watch it again. At this time, two weeks ago, I felt that I could not even write a static page and how to mix it up. DIV + CSS must be fully positioned, javaScript has to make it easy to understand the basics. Let's talk about jquery. I decided to watch the video and learn, so I used the company's high bandwidth to make the donkey sweat .. I downloaded two series of videos, one of which is an intelligence-based podcast video about html + css, and the other is a PHP video of the lamp brotherhood. They all talked about html + css + js + ajax, I saw lamp first. I watched it with headphones all day in my company. I went back to work and saw it in the middle of the night. Well... I have read the html + css part of the two series in about three days, so I went home and set up a Linux server on my vro, and deployed lnmp on it. The router NAT can be directly accessed from the Internet, configure the DDNS of the peanut shell and start to write CSS + DIV on the static page.
To write a static page is to find a website and start imitating it. It does not imitate the code... So I quickly found that it was very simple to write, but I had a problem with IE. I was not able to make any adjustments, so I was severely frustrated. After a day's rest, I came to CSDN to ask, as a result, I found a good blog post. I had to deal with many bugs in IE. For example, the margin of the float block elements I encountered is double, which is the main cause of my incompatibility, as a result, my page gradually became the same in IE and non-IE. I rewrote the page several times and added pop-up drop-down menus and scrolling advertisements by referring to the code of simple pages such as baibai, by the way, I practiced JavaScript and dom by the way and felt a little more confident (C-born I played algorithms during my college years. It was purely show off and I don't explain it ).
While eager to learn the Web and really learn the Web, I also encountered some principle errors, such as buying the Python learning manual and reading it soon, soon afterwards, I was forgotten to clean up (in fact, I hate python because it encapsulates functions into libraries one by one, and I hate complicated simple problems ). After that, after all the basic things on the front end are mastered, I feel that I should go deep into php and not watch the video !! The video is really helpful for getting started. I still remember Sun Xin's video when I was eager to learn WINDOWS development, and Yan Weimin's data structure video that helps me get started with algorithms (I used to watch videos and knock on the data structure every day during a winter vacation). I must acknowledge that video is a magic weapon for getting started, however, the true deep cultivation relies on reading more books, thinking more and summing up, and coding more tests to find the technical self-confidence of a programmer.
I also learned what books I bought. After a long time watching amazon, I finally decided to believe that
PHP and MYSQL Web development in the Bible, I always believe in the power of the Bible, just as I believe in Advanced Programming in UNIX environments and UNIX network programming, devout worship. Seriously question and condemn the disgusting behaviors such as "too simple", "poor printing quality", and "no CD" that are said in the book comments, to some extent, they affect my correct judgment.
PHP and MYSQL Web development started from last week. It takes about 5 to 6 days to complete on Wednesday. Many people must question the speed and quality of reading and watching videos... In fact, I read this book with a plan like this: 1. Proficient in syntax details! 2. Pay attention to the use of security functions such as addslashes, stripslashes, htmlspecialchars, and urlencode (it is really a combination of a lot of additional introductions to truly grasp usage. Many mistakes have been made before, which is terrible) 3. Pay attention to the development of all instances in the second half. 4. Gain sufficient confidence in Web development.
With endless desire for knowledge, I read books all day without having to rest, but I found that people are too old to think about it, I often encounter things that I don't know. I think my mind will remember them for a while and I will not be able to think about the results for a while. So I joined the book and thought about where I was wondering... After finding this problem, I began to take notes. Of course, instead of remembering what I would, I wrote down the question that I was about to experiment with code later.
After reading this book, I feel that I have been integrated into one. This is a kind of technical self-confidence: First of all, I believe that I have more underlying understanding (not including the client JS engine) than ordinary Web programmers ), in addition, I believe that I have sufficient capabilities to develop websites (frontend and backend services can be used at first, but I hope to improve the work tasks of Web development in my work ).
I don't want to talk much about the PHP problems. I am just a beginner here, but I find that a complete system will be formed when you read any book, it is very precious to learn many questions that have been misunderstood or never noticed. In addition, I am talking about reading a book that requires less than 2-3 weeks for me to read any book with no more than 1000 pages. Without such patience, I'm afraid I can never finish reading a book, or I can't remember anything for a month or two. It's really not worth it.