Today, with this post, we are opening a cycle of weekly publications of Technopark educational materials. If someone else does not know, Technopark is a joint educational project of Mail.Ru Group and MGTU. N. E. Bauman. Currently, 91 of the most talented students are trained in 20 IT disciplines. Technopark exists since November 18, 2011, and the first lucky ones began their studies in December 2011.
Education in the Technopark is completely free, it takes place after classes at the university. Become participants in the project can students 3-5 courses. Although for 2 and 6 courses we can make an exception. Education lasts 2 years, it is divided into 4 semesters, each of which take 3-4 subjects. The first block of the first semester is dedicated to everything related to web-technologies, from the history to programming and security of web applications.
Lecture 1. Introduction
In the introductory lesson, you will learn about a brief history of the development of the Internet, the main trends in the development of web applications, cloud services and mobile applications. Also at the lecture the device and the operation of a simple web-application were analyzed, such fundamental concepts as the Internet addressing system, domains, HTML-pages and HTTP protocol were discussed. Finally, a brief overview of CGI scripts, their purpose and features of the work. ')
Lecture 2. Network Protocols
The second lecture is devoted to network protocols. First, the theoretical foundations of the OSI model and protocol nesting are given, the purpose and structure of the TCP and IP protocols are considered, and the domains, domain zones and delegation are described in detail. Then the lecturer tells about what the HTTP protocol is, about the purpose of the HTTP headers, server response codes and other nuances of data transmission in the network. For the remainder of the lecture, all issues related to e-mails are addressed: what is the structure of the e-mail, how are the title and body of the letter, the structure and operation of the SMTP, POP3 and IMAP protocols. At the end, purely practical topics are discussed: the compilation of mailing lists, methods for dealing with spam, the purpose and operation of the SPF extension, the use of the reverse DNS zone.
Lecture 3. Web servers
This lecture deals with the general scheme of the web server: what are sockets, query design, file structure and logging. It describes the differences between frontend and backend servers, as well as the use of servers for receiving static content and proxying requests. Further, the basics of server configuration are discussed, and such concepts as MIME and Content-Type are discussed. After considering the role of the web server as an application server, the lecturer proceeds to the information block on the interaction interfaces with the programming language. And at the end of the lecture you will learn about the query processing model and how to compare the performance of different web servers.
Lecture 4. Server development
First, a small overview of the languages used for server development was made. Then the CGI protocol, the device of CGI scripts and libraries for working with them are studied in detail. The lecturer talks about how to process the input data and work with the database. Work with objects and their lists, and also with forms is considered. Then you will learn how to use redirects, where and in what form the data is stored on the client, how to use cookies and sessions. Finally, work with templates will be examined: using template engines, for which sub-templates are needed and patterns of template inheritance.
Lecture 5. Relational databases
From this lecture you will learn what relational databases are, what they are used for and how they developed. Then, the basic concepts related to working in relational databases, data types in SQL and working with them (normalization, data management, sampling) are considered. The lecturer also talks about how to check the integrity of the database, the use of foreign keys, and at the end of the lecture about the advantages and disadvantages of the most common DBMS.
Lecture 6. MVC frameworks
MVC is a scheme for using multiple design patterns. The lecture tells about what it generally is and how to apply this scheme in practice. Further questions are raised URL routing and processing HTTP requests. It then discusses the visualization of data through the presentation and use of templates.
Lecture 7. Django (part 2)
At the end of the previous lecture, the topic of MVC implementation in the Django framework was addressed. Here this question is considered in detail. In particular, you will learn how to write a django application control script, what middleware is and why it is needed. You will also get acquainted with class-based views (class-based views), filter and tag extensions in the template engine and much more.
Lecture 8. HTML and CSS
After watching this lecture, you will learn a lot about web page layout. It tells about the history of development and features of markup languages such as HTML, XML and XHTML. The lecture teaches the basics of layout, discusses the main tags and attributes, without which even the simplest page cannot be created. You will learn what are the types of page elements, how to create tables and lists. It then discusses cascading style sheets (CSS), their creation and use.
Lecture 9. Javascript
Here you will learn the basics of the JavaScript programming language: its syntax, ways to connect to a web page, and event handling models. At the same time you will learn what AJAX is and how to connect JS-libraries. The rest of the lecture is devoted to the use of the jQuery library and its plug-ins.
Lecture 10. Rich Internet Applications
This lecture describes the rich Internet applications, web applications that are accessible via the Internet. They appeared due to the flaws inherent in HTML, CSS and JavaScript. You will learn about the features, advantages and disadvantages of the RIA, their design and the most popular uses.
Lecture 11. Web application security
The last lecture of this block in Technopark. It describes the main aspects of security that a web developer needs to know: how HTTP authorization is implemented, how an authorization system can be made using a web application, basic concepts of cryptography, security tools in browsers, and what types of attacks on web applications are .