Web client server communication
This presentation is the property of its rightful owner.
Sponsored Links
1 / 16

Web Client/Server Communication PowerPoint PPT Presentation


  • 59 Views
  • Uploaded on
  • Presentation posted in: General

Web Client/Server Communication. A290/A590, Fall 2014 09 /09/ 2014. Fixing permissions. Execute these commands on Silo: $ acl_open –r ~/a290 dnikolov $ acl_open –r ~/a290 vsupe $ acl_open –r ~/a290 tdshah This will only give me and the Ais access to your a290 folders.

Download Presentation

Web Client/Server Communication

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Web client server communication

Web Client/Server Communication

A290/A590, Fall 2014

09/09/2014


Fixing permissions

Fixing permissions

  • Execute these commands on Silo:

    $ acl_open –r ~/a290 dnikolov

    $ acl_open –r ~/a290 vsupe

    $ acl_open –r ~/a290 tdshah

  • This will only give me and the Ais access to your a290 folders


Structure of a url

Structure of a URL

  • URL = Uniform Resource Locator

  • General form:

    protocol://domain:port/path/to/file

    • How? The Application layer protocol. For example, browsers usually use HTTP.

    • Where on the Internet? The named address of the server is translated to an IP address for Internet travel.

    • Where on the server? The port number is used to find the Web server on the target machine, and then locate the virtual space (folder) on the Web server

    • What? Path to a specific file in the virtual space

  • For example:

    http://homes.soic.indiana.edu/classes/fall2014/csci/a290-web-dnikolov/index.html

    • port is 80 by default and is usually omitted


Http transactions the big picture

HTTP Transactions – The Big Picture

  • HTTP = HyperText Transfer Protocol

    • The rules clients and servers on the Web follow to communicate with each other

  • What does a simple HTTP transaction involve?

    • Let's say we are loading the Web page for Lab 1

    • The browser resolves the host name homes.soic.indiana.edu to an IP address

    • An HTTPrequest is sent to the IP address corresponding to homes.soic.indiana for the file /fall2014/csci/a290-web-dnikolov/lab1.html

    • A copy of the HTML document is sent back in the HTTPresponse and stored on the client

    • The HTML file is parsed and further requests are sent to the server to retrieve images, CSS, JavaScript, etc.

    • The additional files retrieved are also stored on the client.

  • We can observe an HTTP transaction using the browser's Web Developer tool


Domain name service dns

Domain Name Service (DNS)

  • DNS = Domain Name Service

    • Provides a mapping between host names and IP addresses

  • Let's take a step back… How do web sites come in existence?

    • A web site needs hosting – a machine with a static IP Address on which to install the web server, Python, etc.

    • A web site also needs a domain – a unique name to be mapped to its IP address, e.g. indiana.edu

    • The hosting provider and domain provider need not be the same

  • IP Addresses and domains

    • ICANN (Internet Corporation for Assigned Names and Numbers) assigns a range of IP addresses to RIRs (Regional Internet Registries), which assign IP addresses to ISPs (Internet Service Providers), e.g. IU, GoDaddy, etc.

    • ICANN also manages top-level domains such as .com, .net, etc. and provides a service ensuring domain name uniqueness

      • A registrar (usually an ISP) can assign domain names under specific top-level domains to its customers, but has to register them with ICANN first


Domain name service dns1

Domain Name Service (DNS)

  • Registering a domain name

    • The ISP manages its own DNS server(s), which are updated once you register a host name

    • DNS is a hierarchy – the ISP's DNS server propagates mapping to DNS servers upwards in the hierarchy

      • Usually takes a few hours after you register a domain for it to be available

    • An example of a DNS SOA (Start of Authority) record that may get propagated


Soa record example

SOA Record example

; $Id: knownspace,v 1.10 2012/01/05 18:25:20 root Exp $

;

$TTL 86400

dimitarnikolov.org.INSOAmoose.cs.indiana.edu. rawlins.cs.indiana.edu. (

2012010501 ; serial

10800 ; refresh (3 hours)

3600 ; retry (1 hour)

604800 ; expire (7 days)

86400 ) ; minimum (1 day)

IN NSdns1

IN NSdns2

IN TXT"Dimitar Nikolov"

IN TXT"Indiana University"

IN MX 0mail.cs.indiana.edu.

dns1INA129.79.247.191

dns2INA129.79.247.195

wwwIN CNAMEwww.cs.indiana.edu.

developerINCNAMEwww.cs.indiana.edu.


The structure of the internet

The Structure of the Internet


Http transactions the big picture1

HTTP Transactions – The Big Picture

  • HTTP = HyperText Transfer Protocol

    • The rules clients and servers on the Web follow to communicate with each other

  • What does a simple HTTP transaction involve?

    • Let's say we are loading the Web page for Lab 1

    • The browser resolves the host name homes.soic.indiana.edu to an IP address

    • An HTTPrequest is sent to the IP address corresponding to homes.soic.indiana for the file /fall2014/csci/a290-web-dnikolov/lab1.html

    • A copy of the HTML document is sent back in the HTTPresponse and stored on the client

    • The HTML file is parsed and further requests are sent to the server to retrieve images, CSS, JavaScript, etc.

    • The additional files retrieved are also stored on the client.

  • We can observe an HTTP transaction using the browser's Web Developer tool


Http requests responses

HTTP Requests & Responses

  • The request consists of a header and a body (separated by a new line)

  • The response consists of a start line, header and a body

  • Let's look at this with telnet…


Http requests

HTTP Requests

  • Remember the first line of the HTTP header:

    GET /test/hi-there.txt

  • Possible HTTP methods

    • GET: Send resource from the server to the client

    • POST: Send client data to a (CGI) application on the server

    • HEAD: Send just the HTTP headers from the response for a given resource

    • DELETE: Delete the resource from the server


File paths on the server

File paths on the server

  • The request for a directory loads a default file, e.g. index.html.

  • If there isn't one, the directory contents may be listed.

    • Usually a security hazard

  • The request for a file (usually) sends the file back to the client

├── index.html

├── …

├── classes

│ ├── fall2014

│   │  ├── ...

│   │ ├── csci

│   │   │  ├── ...

│   │   │├── a290-web-dnikolov

│   │   │   │   ├── homepageinfo.html

│   │   │   │   ├── index.html

│   │   │   │   ├── index.html~

│   │   │   │   ├── lab1.html

│   │   │   │   ├── lab1.html~

│   │   │   │   ├── lab2.html

│   │   │   │   ├── lab2.html~

│   │   │   │   ├── lab2.temp.html~

│   │   │   │   ├── style.css

│   │   │   │   ├── style.css~

│   │   │   │   └── syllabus.pdf

├── …

1

Web Server (e.g. Apache)

  • http://homes.soic.indiana.edu

  • http://homes/soic.indiana.edu/classes/fall2014/csci/a290-web-nikolov

  • http://homes/soic.indiana.edu/classes/fall2014/csci/a290-web-nikolov/lab2.html

2

3


Notes about apache

Notes About Apache

  • ~/local/conf/httpd.conf is where you can specify a lot of relevant options, such as

    • where the Apache virtual space is

      • AKA htdocsAKA wwwroot

    • what port number to listen for requests on

    • default HTML file to serve if a directory is requests, e.g. index.html

    • default pages to serve when an error occurs, e.g. 404 – File Not Found, 500 – Internal Server Error, etc.

  • Important: Every time you change httpd.conf, you need to restart Apache for the changes to take effect!


Web client server communication

CGI

  • CGI = Common Gateway Interface

    • A way for the server to execute a binary script instead of simply delivering a static HTML file.

  • Binaries files are placed in a special directory in the Web server's virtual space, usually cgi-bin

  • When the server receives a request for the file in the CGI directory, instead of delivering the file to the client, it executes it and delivers the output

    • Before the script is executed, the web server puts any input data for the script received from the client in environmental variables

    • The HTTP action for executing a CGI script can be either GET or POST


What a cgi program looks like

What a CGI Program Looks Like

import cgi

html = """Content-Type: text/html\n

<html>

<head>

<title>A First CGI Program</title>

</head>

<body>

<h1>Hello, %(name)s!</h1>

</body>

</html>

"""

form = cgi.FieldStorage()

name = form['name'].value

print(html % name)


Next time

Next Time

  • Processing HTML forms with Python and CGI


  • Login