0% found this document useful (0 votes)
83 views

Hypertext Transport Protocol (HTTP) : Mendel Rosenblum

This document summarizes HTTP (Hypertext Transfer Protocol), the protocol used to request and transfer web pages and other resources over the internet. It describes how HTTP works as a request-response protocol over TCP/IP, with clients like web browsers sending GET requests to servers and receiving responses. Common HTTP methods, status codes, and caching headers are also outlined.

Uploaded by

FAISAL RAHIM
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
83 views

Hypertext Transport Protocol (HTTP) : Mendel Rosenblum

This document summarizes HTTP (Hypertext Transfer Protocol), the protocol used to request and transfer web pages and other resources over the internet. It describes how HTTP works as a request-response protocol over TCP/IP, with clients like web browsers sending GET requests to servers and receiving responses. Common HTTP methods, status codes, and caching headers are also outlined.

Uploaded by

FAISAL RAHIM
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

Hypertext Transport

Protocol (HTTP)
Mendel Rosenblum

CS142 Lecture Notes - HTTP


Web Application Architecture
Web Server /
Web Browser Application server Storage System

HTTP

LAN
Internet

2
Universal Resource Locator (URL)

http://www.example.com:80/index.html
● To display page browser fetches the file index.html from a web server
Same as www.example.com (Defaults: port 80, file index.html, http protocol)
● HTTP (HyperText Transport Protocol)
● HTTP - Simple request-response protocol layered on TCP/IP

1. Establish a TCP/IP connection to www.example.com:80

2. Send a http GET request along connection


3. Read from the connection the response from the web server

CS142 Lecture Notes - HTTP


Send HTTP Request - Write lines to socket
Method URL Protocol Version

GET /index.html HTTP/1.1


Host: www.example.com
User-Agent: Mozilla/5.0
Header Accept: text/html, */*
Accept-Language: en-us
Accept-Charset: ISO-8859-1,utf-8
Connection: keep-alive
blank line
Body
(optional) CS142 Lecture Notes - HTTP
HTTP Methods (Verbs)
● GET - Fetch a URL
● HEAD - Fetch information about a URL
● PUT - Store to an URL
● POST - Send form data to a URL and get a response back
● DELETE - Delete a URL

GET and POST (forms) are commonly used.

REST APIs used GET, PUT, POST, and DELETE

CS142 Lecture Notes - HTTP


HTTP Response - Read lines from socket
Version Status Status Message

HTTP/1.1 200 OK
Date: Thu, 24 Jul 2008 17:36:27 GMT
Header Server: Apache-Coyote/1.1
Content-Type: text/html;charset=UTF-8
Content-Length: 1846
blank line
<?xml ... >
<!DOCTYPE html ... >
Body <html ... >
...
CS142 Lecture Notes - HTTP
</html>
Common HTTP Response Status Codes
200 OK Success
307 Temporary Redirect Redirection - Browser retries using Location header
404 Not Found Famous one
503 Service Unavailable Something crashed on the server
500 Internal Server Error Something is messed up on the server
501 Not Implemented Coming
400 Bad Request Use if web app sends bogus request
401 Unauthorized Use if user isn't logged in
403 Forbidden Use if even logging in wouldn't help
550 Permission denied Not allow to perform request

CS142 Lecture Notes - HTTP


CS142 Lecture Notes - HTTP
Browser caching control
HTTP Response Header: Cache-Control: max-age=<Seconds>

Browser can reuse reply younger than the max-age

Cache-Control: max-age=120 - Age out in two minutes.

Frequently used on fetches of static content like images, templates, CSS,


JavaScript.

Good: Reduce app startup latency and server load


Bad: Changes might not be picked up right away

Consider Web App changes?


CS142 Lecture Notes - HTTP
Browser spends its life fetching things using HTTP
● Some fetched immediately
<link href="angular-material.css" rel="stylesheet" />
<script src="angular.js" type="text/javascript" ></script>
window.location = "http://www.example.com";
● Some asynchronous and in parallel
<img src="smiley.gif">
<img src="foobar.jpg">
<img src="foobar2.jpg">
● Some can be in background
<a href="http://www.example.com"></a>
CS142 Lecture Notes - HTTP
What would this JavaScript do?
elm.innerHTML =
"<script src="http://www.example.com/myJS.js"
type="text/javascript" ></script>"

Uses HTTP to fetch myJS.js and runs it! Scary but useful.

CS142 Lecture Notes - HTTP

You might also like