Tech

Basics About Web Development Technologies

Web development models and technologies have evolved a lot in the last decade, there are many applications, frameworks, libraries, architectures and publishing systems in different versions that in turn receive changes or improve over time.

Progress has also taken place in relation to system administration, hosting services, scalability techniques, monitoring and management of data process centers.

This evolution has resulted in the convergence of a large number of technologies , tools and architectural styles to develop websites in Canberra and applications, we tell you the most important aspects related to them, and the way in which they interact with each other.

Basic architecture of a web application

In order for a website or web application to work by showing itself to the public, an architecture that has at least the following elements is necessary:

The browser: Represents the client concept by making requests requesting resources from different web servers through URL.

The Server: Stores the structure of the information on the website in an organized way to serve the contents in relation to the browser’s requests.

The http protocol: It is the protocol based on TCP / IP through which the browser makes requests to the server to respond.

HTML: It is the basic format of the documents that make up the web pages, is based on tags and is used to structure the way of displaying the contents of the pages.

CSS: Cascading style sheets serve to aesthetically favor structured elements and content through HTML tags, giving them personality in terms of design, shape and colors.

In addition to meeting the basic requirements to operate a website or web application can be created using different technologies that fall into two broad categories:

Client technologies: These are those that allow you to create user interfaces and establish communication with the server based on HTML, CSS and JavaScript, in this case, the browser acts as an interpreter.

Server technologies: They allow to implement web application behaviors on the server, the most used programming languages ​​are Java EE, .NET, PHP, Ruby on Rails, Python, Django, Groovy, Node.js, etc.

Image result for web development technologies

Web architectures of static or dynamic content

It is said that the content that shows a certain page or website completely is static content when it does not allow user interaction in any way, on the contrary the pages that invite to interact with the visitor through different elements such as forms, buttons; maps, etc, offer dynamic content.

Static client and static server: In this model the browser makes a request to the server through the http protocol, the server transforms the URL to disk path and returns the file to the browser that draws or renders it showing the structure of the page in HTML and its content as photos and videos, also the aesthetics of its design thanks to CSS styles.

In this case there is no interaction using JavaScript, the server always returns the same resources, so from this point of view the web is static.

Static client and dynamic server: This model consists of 3 layers, since the browser and the web server are involved, but also a database associated with the latter.

When the server receives a request, returns disk content or executes code to generate the resource dynamically, this code normally makes inquiries to the database to retrieve the information, generating the HTML page and contents dynamically.

Dynamic client and static server: Content is hosted on the server’s hard disk statically, but the client is dynamic because the pages include JavaScript code that runs in the browser.

This JavaScript code can perform actions and graphic effects, show and hide information, display interactive elements, adapt the contents, etc. …

Dynamic client and dynamic server: The concepts of the two previous cases are combined, using JavaScript for graphic effects and interactive behaviors, but also to make requests in the background (AJAX) and single page applications with REST API.

JavaScript can be used to avoid having to completely reload the page when clicking on a link, making requests to the web server in the background (hidden from the user). When the result of the request reaches the browser, the JavaScript code updates only the necessary parts of the page.

This technique is known as AJAX (Asynchronous JavaScript And XML) and greatly improves the user experience since when making requests the server can return dynamically generated HTML fragments, static resources on disk such as images, PDF, show errors, change colors, structured information in XML or JSON, etc.

Standard client side technologies

The W3C (World Wide Web Consortium) is an international community that develops open standards that ensure long-term web growth, such as HTML5 & CSS, Scripting and AJAX, accessibility standards, graphics, audio and video, semantic web, XML and many more.

HTML: (Hypertext Markup Language) provides structured information in sections, paragraphs, title, images, etc. The current HTML5 version, and offers many advanced libraries for the insertion of multimedia content, canvas, communications and concurrency.

CSS: (Cascading Style Sheets) is responsible for the distribution of the elements and their style with colors, fonts, backgrounds, effects, etc … in HTML documents, XML, SVG or even user interfaces of other technologies.

Scripting: Thanks to scripting pages can be programmed with different scripting languages, although mainly JavaScript is used, which modifies the page thanks to its ability to execute code when interacting with it.

JavaScript was initially an interpreted language but currently also runs with virtual machines in browsers, increasing execution speed and memory efficiency. It is dynamic typing and functionally object oriented (prototype based).

There are many libraries (APIS) for web and application development, but the most used are JQuery and Underscore.js.

DOM: It is the document object model (Document Object Model) and consists of a library (API) to manipulate the HTML document loaded in the browser, allowing event management, or the insertion and deletion of elements.

Non-standard technologies for web development

For a long time the lack of open technologies to perform different actions associated with behaviors and multimedia content made some proprietary technologies occupy this gap, always at the initiative of software development companies, below we highlight some of the best known.

Adobe Flash: This is a technology used to embed interactive multimedia content in web pages that prevailed for a long time, free for the user but proprietary and closed for developers, who must pay license to use it, the main reason why It is increasingly obsolete.

Java Applets: Java Applets were the precursors of Flash, but due to anti-competitive practices from Microsoft and Sun Microsystems, it was more focused on application servers, so it has long been deprecated.

Microsoft Silverlight: It was for a long time Microsoft’s bet to compete with Adobe Flashs, but support was very limited on platforms other than Windows.

Server technologies

The standards are very important in web browsers (client) since it is important that the web is compatible with any device, however these standards are not necessary on the server, because each organization will develop its server with the technology they deem convenient.

Image result for web development technologies

Proprietary or open technologies are used in the server for the development of web applications, there are many of them, among them the most used are PHP, Java EE and ASP.NET, and the least used Ruby on Rails, Grails (Groovy), Django (Phyton), Perl, ColdFusion, there are many more, but among them we comment below the most prominent.

Java EE: It is a Java-based technology developed by a coalition of companies led by Oracle, IBM, Red Hat, etc … widely used at the enterprise level, most implementations and tools for development are free software, and there are communities of developers and Companies that make accessories.

PHP: It is a technology with its own language, developed by the PHP Group and with a free license. It is the server-side technology with which more servers have been implemented on the Internet, it is cross-platform and is normally integrated with Apache and MySQL in Linux environments thanks to a package called LAMP.

ASP.NET: This is an advanced version of the classic ASP, is integrated into the Microsoft .NET technology together with the C # language, has proprietary license and Windows platforms and developer community má limited than other alternatives.

Databases

The most popular databases used for the development of web applications are relational databases . There are many commercial and free software relational databases such as MySQL, Derby, Oracle, MS SQL Server, PostgreSQL.

Currently the most used database management system is MySQL, it is multiplatform and developed in C, it has an open source GPL license and consists of an interactive tool to make queries and create databases, as a whole it has become very popular in web development

Web applications are in need of scalability and fault tolerance, which is why a new family of databases called NoSQL is being made hollow , among which are Cassandra, mongoDB, riak, redis.

Content management systems

Content management systems or CMS (Content Management System) have been imposed for a long time, which are pre-designed web applications and initially configured to create and manage online content.

CMS jointly use several of the technologies described above, and have evolved to become a new website development model, configuring and adapting modules through a web interface.

The system also allows the design and content to be managed independently, modifying its structure through templates or themes.

There are many CMS with different approaches and objectives such as Drupal (PHP), Joomla (PHP), WordPress (PHP), Plone (JavaScript), Moodle (PHP), Liferay (Java), PrestaShop (PHP), etc …

Conclusions

The design and development of websites and online applications entails the choice and knowledge of the technologies that are decided to be used, in order to favor their implementation and ensure maintenance.

Content managers are an ideal alternative to create complete websites avoiding the cost of developments “from 0” or starting from the use of a framework, but the choice depends on the way to approach each project according to its characteristics or singularities.

We design and develop websites using different technologies, if you doubt about which one will be the most appropriate to create the website associated with your activity get in touch , we are at your service to advise you.

Comment here