6. Internet Technologies WWW Architecture Web Server PC/Mac/Unix + Browser Client Server Request: http://www.msn.com/default.asp Response: <html>…</html> Network TCP/IP
7.
8.
9.
10.
11.
12.
13. Internet Technologies HTTP Request GET /default.asp HTTP/1.0 Accept: image/gif, image/x-bitmap, image/jpeg, */* Accept-Language: en User-Agent: Mozilla/1.22 (compatible; MSIE 2.0; Windows 95) Connection: Keep-Alive If-Modified-Since: Sunday, 17-Apr-96 04:32:58 GMT Method File HTTP version Headers Data – none for GET Blank line
14. Internet Technologies HTTP Response HTTP/1.0 200 OK Date: Sun, 21 Apr 1996 02:20:42 GMT Server: Microsoft-Internet-Information-Server/5.0 Connection: keep-alive Content-Type: text/html Last-Modified: Thu, 18 Apr 1996 17:39:05 GMT Content-Length: 2543 <HTML> Some data... blah, blah, blah </HTML> HTTP version Status code Reason phrase Headers Data
15. Internet Technologies HTTP Server Status Codes Description Code Internal Server Error 500 Not Found 404 Forbidden – not authorized 403 Unauthorized 401 Bad Request – not understood 400 Moved Temporarily 302 Moved Permanently 301 Created 201 OK 200
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30. Internet Technologies Networks Application Layer Presentation Layer Session Layer Transport Layer Network Layer Data Link Layer Physical Layer Internet Layer Application Layer Telnet FTP SMTP DNS RIP SNMP HTTP IP Host-to-Host Transport Layer TCP UDP Token Ring Ethernet ATM Frame Relay Network Interface Layer OSI Model Layers TCP/IP Protocol Architecture Layers TCP/IP Protocol Suite ARP ICMP IGMP
This module assumes that you understand the fundamentals of working with computers and using the World Wide Web. The sections on Web programming technology assume an understanding of software development, particularly using object-oriented languages such as C++, Visual Basic, or Java.
This module is designed to provide you with a basic background in Internet/Web technologies and current technologies for creating Web-based applications. It also provides an overview of the .NET development platform, the details of which comprise the remainder of the course.
The Web can be viewed from many different perspectives.
This is the basic architecture of the web. A browser running on a client machine makes a request to a server using the HTTP protocol over TCP/IP. The server responds with an HTML page, which is rendered in the browser.
The Internet Engineering Task Force (IETF) is a large open international community of network designers, operators, vendors, and researchers concerned with the evolution of the Internet architecture and the smooth operation of the Internet. It is open to any interested individual. It has overseen the development of many Internet standards (e.g. TCP/IP, DNS). The World Wide Web Consortium (W3) develops common protocols (e.g. HTML, XML) to promote the evolution and interoperability of the Web.
Objects such as images, audio, video, and documents are not actually enclosed in the HTML Web page, but are referenced by the page. When you tell your browser to display a Web page, it may have to make multiple requests to the server (or possibly different servers) to get all the referenced objects. Example: Get default.asp may result in additional requests for the following files: Get image1.gif Get image2.jpeg Get video1.mpeg …
Not too long ago it was quite reasonable to ask “Why do we need networks?” Now the question seems silly!
This figure depicts the different layers used in networking protocols.
Physically, a request goes down the protocol stack on the client, across the network to the server, then up the server’s protocol stack (solid arrows). Logically, however, the corresponding layers on each machine “talk” to each other (dashed arrows).
In reality, the “go to” statement is not inherently “evil”, but should be used in a structured manner. C# supports “go to”s, but only in a limited way.
Structured programming addresses the problems involved in writing a single procedure. It doesn’t help too much when large-scale systems are involved.
Object-oriented programming actually builds upon structured programming. Structured programming techniques are used within individual methods.
Components build upon object-oriented concepts.
This course will focus on server-side .NET technologies.