Network-2-Web and HTTP
Web and HTTP
web page consists of objects
object can be HTML file, JPEG image, Java applet, audio file, …
web page consists of base HTML-file which includes several referenced objects
each object is addressable by a URL, e.g.,
HTTP overview
HTTP: hypertext transfer protocol
- Web’s application layer protocol
- client/server model
- client: browser that requests, revceives, (using HTTP protocol) and displays Web objects
- server: Web server sends (using HTTP protocol) objects in response to requests

- uses TCP
- client initiates TCP connection(creates socket) to server, port 80
- server accepts TCP connection from client
- HTTP messages (application-layer protocol messages) exchanged between browser (HTTP client) and Web server (HTTP server)
- TCP connection closed
- HTTP is “stateless”
- server maintains no information about past client requests
- aside :
protocols that maintain "state" are complex!
- past history (state) must be maintained
- if server/client crashes, their views of “state” may be inconsistent, must be reconciled
HTTP connections
- non-persistent HTTP
- at most one object sent over TCP connection
- connection then closed
- downloading multiple obejcts requires multiple connections
- at most one object sent over TCP connection
- persistent HTTP
- multiple objects can be sent over single TCP connection between client, server
Non-persistent HTTP
suppose user enters URL:
www.someSchool.edu/someDepartment/home.index


Non-persistent HTTP: response time
- RTT (definition): time for a small packet to travel from client to server and back
- HTTP response time
- one RTT to initiate TCP connection
- one RTT for HTTP request and first few bytes of HTTP response to return
- file transmission time
- non-persistent HTTP response time = 2RTT + file transmission time

Persistent HTTP
- non-persistent HTTP issues
- requires 2 RTTs per object
- browsers often open parallel TCP connections to fetch referenced objects
- OS overhead for each TCP connection (each tcp buffer, socket)
- persistent HTTP
- server leaves connection open after sending response
- subsequent HTTP messages between same client/server sent over open connection
- client sends request as soon as it encounters a referenced object
- as little as one RTT for all the referenced objects
HTTP request message
- two types of HTTP messages: request, response
- HTTP request message
- ASCII (human-readable format)

Keep-Alive Header is persistent HTTP configure
general format

Uploading form input
- POST method:
- web page often includes form input
- input is uploaded to server in entity body
- URL methoed:
- uses GET method
- input is uploaded in URL field of request line
Method types
- HTTP/1.0
- GET
- POST
- HEAD
- asks server to leave requested object out of response
- HTTP/1.1
- GET, POST, HEAD
- PUT
- uploads file in entity body to path specified in URL field
- DELETE
- deletes file specified in the URL field
HTTP response message

HTTP response status codes
- status code appears in 1st line in server to client response message
- some sample codes
- 200 OK
- request succeeded, requested object later in this msg
- 301 Moved Permanently
- request object moved, new location specified later in this msg (Location Header)
- 400 Bad Request
- request msg not understood by server
- 404 Not Found
- requested document not found on this server
- 505 HTTP Version Not Supported
- 200 OK
User-server state: cookies
- many Web sites use cookies four components
- cookie header line of HTTP response message
- cookie header line in next HTTP request message
- cookie file kept on user’s host, managed by user’s browser
- back-end database at Web site
- example
- Susan always access Internet from PC
- visits specific e-commerce site for first time
- when initial HTTP requests arrives at site, site creates
- unique ID
- entry in backend database for ID

- what cookies can be used for
- authorization
- shopping carts
- recommendations
- user session state (Web e-mail)
- how to keep “state”
- protocol endpoint: maintain stat at sender/receiver over multiple transactions
- cookies: http messages carry state
- aside : cookies and privacy
- cookies permit sites to learn a lot about you
- you may supply name and e-amil to sites
Web caches (proxy server)
goal
: satisfy client request with out involving origin server- user sets browser: Web access via cache
- browser sends all HTTP requests to cache
- object in cache: cache returns object
- else cache requets object from origin server, then returns object to client

- cache acts as both client and server
- server for original requesting client
- client to origin server
- typically cache is installed by ISP (university, company, residential ISP)
- why Web cacing?
- reduce response time for cient request
- reduce traffic on an institution’s access link
- Internet dense with caches: enables “poor” content providers to effectively deliver content (so Too does P2P file sharing)
Conditional GET
Goal
: don’t send object if cache has up-to-date cached version- reduce delay
- lower link utilization
- cache: specify date of cached copy in HTTP request
- If-modified-since: date
- server response contatins no object if cached copy is up-to-date
- HTTP/1.0 304 Not Modified

참조
- 컴퓨터 네트워크 이미정 교수님 강의
- Computer Networking: A Top-Down Approach Featuring the Internet