Introduction: A look at the history of the WEB

I have unconsciously experienced half of the historical evolution of the WEB during my study in school and several years of work. I have a better understanding of the development of the WEB in recent years.

Evolution is not easy, but it is inevitable, because people always want to improve.

History of the WEB

First, the founder of the Mountain – Stone Age

A static web site

This is Apple’s website in 1997, and the website at that time was more like a web page, like a flashy color newspaper. It was pure HTML, and every page existed on the server, whether you visited the page or not.

CGI technology

Later, a more technical web site might run a small piece of code through CGI Perl to interact with a database or file system. Such as:

1998
A static page
CGI

Static sites are the most popular with search engines, because they are relatively fixed, so SEO is very easy to do, and I guess this is one of the reasons why most document sites are static.

Too bad I didn’t get to see it with my own eyes

Two, predecessors planted trees – civilization era

Asp and JSP

Around 2005, Microsoft’s ASP and Java Server Pages [JSP] technologies successively emerged, replacing CGI, enhancing the security of WEB and Server interaction, and making it easier to use, but with the complexity of each company’s WEB business, shortcomings are gradually exposed:

1, single technology, difficult to maintain

A JSP page consists of HTML code and embedded Java code, using a common JSP snippet as an example:


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+": / /"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
    <%@ page import="com.zifangsky.OnlineFriend.model.article.ShowByPage"%>
<jsp:useBean id="showAllTitle" type="com.zifangsky.OnlineFriend.model.article.ShowByPage" scope="session"/>
Copy the code

JSP = HTML+Java

The above code HTML is heavily coupled with JAVA code, which can act as part of the server on the client side after being compiled by JSP. This makes it difficult to understand the role of the server and increases the complexity of debugging. To make the business a little more complicated, think about it: There’s so much Java code in THE HTML that it’s a pain to develop and maintain.

JSPS, like Java servlets, are executed on the server side and usually return an HTML text to the client. Every time we requested data and loaded content, the server returned the DOM for us after dyeing, which greatly reduced the flexibility of our website development. In this case, in the same year: Ajax became popular.

The emergence of AJAX

Why did Ajax catch on in 2005? Ajax wasn’t invented in 2005, it was invented in 1999.

In 1999, Microsoft released Internet Explorer 5, which for the first time introduced a new feature that allowed javascript scripts to make HTTP requests to servers (the original of today’s infamous ActiveX). The feature didn’t get much attention until the launch of Gmail in 2004 and Google Map in 2005

What did Google do? In 2005, Google made AJAX popular with Its Google Suggest, which went something like this:

Technology, now common, quickly exploded the technosphere to achieve: Since then, AJAX has become a synonym for scripting to initiate HTTP communication. The following year, W3C also released AJAX international standard in 2006

Conclusion:

Subsequently, a variety of JSP ASP improved template engine, a new way of interaction is also springing up. In addition, JAVA as a server has also emerged such as Struts, Spring, Hibernate, the older generation of frameworks, the use of back-end MVC to build WEB applications more sound, WEB services are gradually from the Stone Age to the age of civilization.

3. Simplify complexity – Industrial Revolution era

As time flies, there are several trends in front and back.

The front-end development

The mobile terminal

The mobile phone has developed a little bit, and the web has differentiated between web and mobile applications, but mobile is limited to the technology of the mobile industry at the time and has been slow to develop.

The emergence of the Jquery

A very popular JavaScript library, jquery, can quickly build dynamic and beautiful Web applications, perfectly encapsulating Ajax and making web development elegant for developers.

The prototype of the SPA

With the formal introduction of Ajax in civilization era and the extensive Application of CDN for static resource storage, SPA (Single Page Application) emerged, Backbone EmberJS AngularJS and other front-end frameworks emerged. However, in terms of supporting technologies at that time, SPA was not an easy path: SEO problems, excessive PAGES in SPA, VIEW binding in complex scenes, etc., were not well handled.

The backend development

After several years of development of Struts, Spring and Hibernate, SSM, a worded word today, almost became the primary selection of JAVA server at that time. I think this is also the main reason why many companies or outsourcing companies still maintain such a set of architecture.

To sum up, the rapid development in recent years has saved us a lot of experience, lowered the threshold of developers and development process, and greatly improved the development efficiency and iteration speed. I call it the Industrial Era

experience

You may not believe it: at the end of my junior year, I got my first job as an intern. I worked for 7 or 8 months on and off by myself. I studied these technologies and independently developed a Web application called Micro Treasure.

Project architecture from civilization -> to the last industrial age! I continued to rebuild, go online and study hard. I am very grateful to my boss for his trust in me and my colleagues for their help.

Four, a hundred schools of Thought contend – technology big bang era

Time, he never stopped, until today — technology can only be described as an explosion.

The front bang

SPA model proposed in the industrial era With the rise of NODE, the rapid development of server, various tools and containers, the front-end MVC MVVM mode is gradually clear, and a number of excellent open source projects emerge in the front-end: Package management: NPM YARN packaging: Grunt gulp module loading: RequireJS SeaJs Framework: VUE Angular React Hybrid: Ionic WEEx React-Native Electron preprocessor: Less SASS Echarts HCharts and animation to improve user experience, let us have more “face”

Even the front end can use Node to build its own simple server and is moving away from being a “client developer.

The back-end explosion

go

More suitable for server oriented programming, if you use C or C++ to do those things, use Go to do, such as virtual machine processing, file system, etc., strong like Docker Kubernetes (K8s) are written by Go

python

Like a biological language, it is now easier to deal with algorithms, artificial intelligence, web crawlers, operations and maintenance

java

A language that has been around for more than 20 years is getting stronger. A number of high-quality libraries have emerged, some of which are representative:

Netty RebbitMQ: easy to implement message queue elasticSearch: easy to implement search engine Spring-boot: easy to implement configuration oriented Web server Spring-cloud, dubbo: easy to implement microservices

And the coming formidable JAVA11

There are operations related to continuous integration of cloud services such as Devops

conclusion

The advent of Go and Python has enabled us server-side developers to do more things, such as automating operations and writing middleware. Gradually inclined to the direction of full stack development. The development of the JAVA ecosystem over the past 20 years has helped us write more robust services. We are dazzled by artificial intelligence, DevOps, cloud services, etc. Open source has become a trend, and technology sharing has become something everyone wants to do. I call it the age of technology explosion

experience

In the past two years, I have been very worried: how to make the front and back end more elegant communication?

I used a variety of back-end template engines until they were completely abandoned, and then went to Node for proxy, rendering + grunt for number processing, and then gradually used them

vue + webpack ——> Rest API

If you have to use NODE, you’ll just be a part of Rest and not have to communicate through NODE. This separation of front and back is satisfactory, so the front end doesn’t have to deal with the back end. Back end? Just write up your own service.

This chapter is just a brief review of the history of development, and we’ll go into more detail in the next chapter, The Beginning: In Depth on the Architecture of separation before and after

About me

  • Currently writing the “Before and after Building from Zero” series, proofread or update this address

  • Constantly updated project practice address

  • Easter Eggs: Preview the next chapter portal 🤓