SlideShare a Scribd company logo
HTTP Protocol
Instructor: Prof. Dr. Friedbert Kaspar
Mai Nam Chuong
VGU BIS 2012 – Computer Networks
Definitions
HTTP Communication chain
HTTP Transport binding
HTTP Methods
HTTP Messages
HTTP Status Codes
HTTP Caching
Q&A
Agenda
2
A set of rules and regulations that
determine how data is transmitted.
Communication Protocol?
3
7 OSI layers
HTTP, SMTP, FTP, DNS
…
4
Application vs. Application layer
Application layer provides services for user
applications to use. Or,
User applications use protocols that reside
at the application layer.
Ex: Internet Explorer – HTTP; Outlook –
SMTP
Application layer?
5
Hypertext Transfer Protocol
an application-level protocol for
distributed, collaborative, hypermedia
information systems (RFC-2616)
Not only text but graphics and multimedia
A part of TCP/IP protocols suite
HTTP protocol?
6
HTTP protocol?
7
History
1990 – HTTP/0.9
1996 – HTTP/1.0
1999 – HTTP/1.1
Next HTTP/2.0 (draft)
HTTP protocol?
8
The HTTP protocol is a request/response
protocol
A client sends a request to the server
The server responds data
HTTP Communication chain
Request
Response
HTTP Client HTTP Server9
HTTP Request/Response Chain with
Intermediaries
HTTP Communication chain
Request
Response
HTTP Client
HTTP ServerIntermediary
Request
Response
Proxy
Gateway
10
Do not remember previous
request/response chain
HTTP stateless protocol
Request 1
Response 1
HTTP Client HTTP Server
Request 2
Response 2
How to maintain state?
11
Transitory connection
One connection is created for each
request/response
Persistent connection
The connection is kept open after each
request/response set until the client is done
requesting all the documents.
HTTP Transport binding
12
GET (*)
HEAD (*)
POST (*)
OPTIONS
PUT
DELETE
TRACE
CONNECT
HTTP Methods
13
GET - Requests data from a specified
resource
POST - Submits data to be processed to
a specified resource
HTTP GET vs. POST
14
HTTP GET vs. POST
15
Communication between devices using
the HTTP takes place via HTTP messages
Two types: requests and responses.
Text-based message format.
HTTP Message
16
HTTP Request Message
17
Accept:
tell the server what Internet media types it is willing to
accept in a response
Accept: type/subtype; text/plain; image/jpg; */*
Accept-Charset
specifies what character sets the client is willing to
accept in a response
Accept-Charset: iso-8859-5, UTF-8
Accept-Encoding
specifies what content encodings the client is willing to
accept
Accept-Encoding: compress, gzip
Accept-Language
indicate what languages the client supports
Accept-Language: en-gb; vi-vn
HTTP Request Headers
18
Host:
Specifies the Internet host
Host: www.vgu.edu.vn:8080
User-Agent
Specifies what agent (application) is sending the
request
User-Agent: Mozilla/5.0
Cookie
Cookie data which previously set by the server
Cookie: user=1; category=pc;
Referer
the URL of the resource from which the URL of the
current request was obtained
Referer: http://google.com
HTTP Request Headers (cont.)
19
HTTP Response Message
20
Server
Server info that serves the request
Server: Apache/2.4.1 (Unix)
Expires
gives the date/time after which the response is
considered
Expires: Thu, 20 Jul 2013 16:00:00 GMT
Refresh
Used in redirection, or when a new resource has been
created.
Refresh: 5; url=http://www.vgu.edu.vn
HTTP Response Headers
21
1xx (Informational): Request received, server is
continuing the process.
2xx (Success): The request was successfully
received, understood, accepted and serviced.
3xx (Redirection): Further action must be taken in
order to complete the request.
4xx (Client Error): The request contains bad syntax
or cannot be understood.
5xx (Server Error): The server failed to fulfill an
apparently valid request.
HTTP Status codes
22
200 OK: The request is fulfilled.
301 Move Permanently: The resource
requested for has been permanently
moved to a new location
304 Not Modified: Server notifies that
the resource requested has not been
modified.
Common HTTP Status codes
23
400 Bad Request: Server could not
understand the request (syntax error).
401 Authentication Required: The
requested resource is protected, and
require client’s credential.
403 Forbidden: Server refuses to supply
the resource, regardless of identity of
client.
404 Not Found: The requested resource
cannot be found in the server.
Common HTTP Status codes
24
500 Internal Server Error: Server is error in
the server-side program responding to the
request.
503 Service Unavailable: Server cannot
response due to overloading or
maintenance. The client can try again later.
504 Gateway Timeout: Proxy or Gateway
indicates that it receives a timeout from an
upstream server.
Common HTTP Status codes
25
HTTP is a
stateless
protocol.
Cookies
provide a
mechanism to
"maintain
state".
HTTP Cookie
26
Cache: local copy of a resource
HTTP Caching
Request
Response
HTTP Client
Intermediary
Request
Response
HTTP Server
27
Expiration Model
How long a resource is valid?
Eliminate requests to server
Reduce network round-trip
Cache-Control: max-age=3600
Expires: Tue, 15 Aug 2013 07:19:00 GMT
HTTP Caching
28
Validation Model
When the resource last changed?
Eliminate full response to client
Reduce network bandwidth
If-Modified-Since: Thu, 17 Aug 2006 17:53:51 GMT
ETag: "686897696a7c876b7e"
HTTP Caching
29
RFC-2616:
http://www.w3.org/Protocols/rfc2616/rfc2616.html
TCP GUIDE:
http://www.tcpipguide.com/free/t_TCPIPHypertextTran
sferProtocolHTTP.htm
IBM Software Information Center - The HTTP
protocol
http://publib.boulder.ibm.com/infocenter/cicsts/v3r1/top
ic/com.ibm.cics.ts31.doc/dfhtl/topics/dfhtl29.htm
References
30
Q&A
31

More Related Content

PPTX
Secure coding practices
PPT
HTTP Basics
PPTX
HyperText Transfer Protocol (HTTP)
PPT
Video display devices
PDF
Intro to Asynchronous Javascript
PPT
Graphics software
PPTX
REST API
PDF
Asynchronous JavaScript Programming
Secure coding practices
HTTP Basics
HyperText Transfer Protocol (HTTP)
Video display devices
Intro to Asynchronous Javascript
Graphics software
REST API
Asynchronous JavaScript Programming

What's hot (20)

PPTX
PPSX
HTTP Presentation
PPTX
Http protocol
PPTX
Http Introduction
PPTX
HTTP request and response
PPTX
Http Protocol
PPTX
Http-protocol
PPTX
Introduction to HTTP protocol
PPTX
Hypertext Transfer Protocol
PPTX
PPTX
PDF
HTTP Request and Response Structure
PPTX
Basics of HTTP - Nafis Fuad
PPTX
Http and its Applications
PPTX
PPTX
Socket Programming
PPTX
REST & RESTful Web Services
PPSX
Hypertext Transfer Protocol
PPT
Http VS. Https
PPTX
Http request and http response
HTTP Presentation
Http protocol
Http Introduction
HTTP request and response
Http Protocol
Http-protocol
Introduction to HTTP protocol
Hypertext Transfer Protocol
HTTP Request and Response Structure
Basics of HTTP - Nafis Fuad
Http and its Applications
Socket Programming
REST & RESTful Web Services
Hypertext Transfer Protocol
Http VS. Https
Http request and http response
Ad

Viewers also liked (20)

PDF
"Http protocol and other stuff" by Bipin Upadhyay
PDF
Web Crawling- Scraping Ajax Sites
KEY
What's up with HTTP?
PDF
C++17 introduction - Meetup @EtixLabs
PDF
Web I - 05 - HTTP Protocol
PDF
Modern c++ (C++ 11/14)
PDF
Bjarne essencegn13
PDF
C++11
PPTX
PDF
C++11 concurrency
PDF
C++11 & C++14
PDF
C++17 - the upcoming revolution (Code::Dive 2015)/
PDF
Networking - TCP/IP stack introduction and IPv6
PPTX
Elements of C++11
PPTX
Database connectivity to sql server asp.net
PDF
C++11 Idioms @ Silicon Valley Code Camp 2012
PDF
C++14 Overview
PDF
C++ 11 Style : A Touch of Class
PPT
C# Tutorial MSM_Murach chapter-17-slides
"Http protocol and other stuff" by Bipin Upadhyay
Web Crawling- Scraping Ajax Sites
What's up with HTTP?
C++17 introduction - Meetup @EtixLabs
Web I - 05 - HTTP Protocol
Modern c++ (C++ 11/14)
Bjarne essencegn13
C++11
C++11 concurrency
C++11 & C++14
C++17 - the upcoming revolution (Code::Dive 2015)/
Networking - TCP/IP stack introduction and IPv6
Elements of C++11
Database connectivity to sql server asp.net
C++11 Idioms @ Silicon Valley Code Camp 2012
C++14 Overview
C++ 11 Style : A Touch of Class
C# Tutorial MSM_Murach chapter-17-slides
Ad

Similar to HTTP Protocol Basic (20)

PPTX
Httpbasics 1207412539273264-9-converted
PPTX
Module 5.pptx HTTP protocol on optical and wireless communication
PPTX
Http_Protocol.pptx
PPTX
www and http services
PDF
Hypertexttransferprotocolhttp 131012171813-phpapp02
PPTX
Compute rNetwork.pptx
PPT
Web Services 2009
PPT
Web Services 2009
PPT
HTTP_2.ppt
PPT
HTTP (syper text transfer protocol)(6).ppt
PPT
HTTP.ppt
PPT
HTTP.ppt
PPT
Hypertext Transfer Protocol Hypertext Transfer Protocol
PPT
Appl layer
PPTX
http presentation 1.pptx
PPTX
Distributed web based systems
PPTX
Http basics by-joshi_29_4_15-ppt
PPTX
PPTX
Web technology introduction to the web and its history
PPT
HTTPProtocol HTTPProtocol.pptHTTPProtocol.ppt
Httpbasics 1207412539273264-9-converted
Module 5.pptx HTTP protocol on optical and wireless communication
Http_Protocol.pptx
www and http services
Hypertexttransferprotocolhttp 131012171813-phpapp02
Compute rNetwork.pptx
Web Services 2009
Web Services 2009
HTTP_2.ppt
HTTP (syper text transfer protocol)(6).ppt
HTTP.ppt
HTTP.ppt
Hypertext Transfer Protocol Hypertext Transfer Protocol
Appl layer
http presentation 1.pptx
Distributed web based systems
Http basics by-joshi_29_4_15-ppt
Web technology introduction to the web and its history
HTTPProtocol HTTPProtocol.pptHTTPProtocol.ppt

More from Chuong Mai (9)

PPTX
Sql vs. NoSql
PPTX
Internet marketing - Đăng tin hiệu quả
PPTX
Leadership
DOCX
Intercultural Management case analysis
PPTX
IT governance in SMEs
PDF
Quốc gia khởi nghiệp
PPTX
Xác định mục tiêu và lập kế hoạch để đạt được mục tiêu
PPTX
Online marketing basic
PDF
Cloud computing made simple
Sql vs. NoSql
Internet marketing - Đăng tin hiệu quả
Leadership
Intercultural Management case analysis
IT governance in SMEs
Quốc gia khởi nghiệp
Xác định mục tiêu và lập kế hoạch để đạt được mục tiêu
Online marketing basic
Cloud computing made simple

Recently uploaded (20)

PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
Cloud computing and distributed systems.
PDF
Modernizing your data center with Dell and AMD
PDF
Machine learning based COVID-19 study performance prediction
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Approach and Philosophy of On baking technology
PPTX
Big Data Technologies - Introduction.pptx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
[발표본] 너의 과제는 클라우드에 있어_KTDS_김동현_20250524.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
MYSQL Presentation for SQL database connectivity
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
breach-and-attack-simulation-cybersecurity-india-chennai-defenderrabbit-2025....
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
20250228 LYD VKU AI Blended-Learning.pptx
Cloud computing and distributed systems.
Modernizing your data center with Dell and AMD
Machine learning based COVID-19 study performance prediction
The AUB Centre for AI in Media Proposal.docx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
“AI and Expert System Decision Support & Business Intelligence Systems”
NewMind AI Monthly Chronicles - July 2025
Advanced methodologies resolving dimensionality complications for autism neur...
Approach and Philosophy of On baking technology
Big Data Technologies - Introduction.pptx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
[발표본] 너의 과제는 클라우드에 있어_KTDS_김동현_20250524.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
MYSQL Presentation for SQL database connectivity
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
breach-and-attack-simulation-cybersecurity-india-chennai-defenderrabbit-2025....
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...

HTTP Protocol Basic

  • 1. HTTP Protocol Instructor: Prof. Dr. Friedbert Kaspar Mai Nam Chuong VGU BIS 2012 – Computer Networks
  • 2. Definitions HTTP Communication chain HTTP Transport binding HTTP Methods HTTP Messages HTTP Status Codes HTTP Caching Q&A Agenda 2
  • 3. A set of rules and regulations that determine how data is transmitted. Communication Protocol? 3
  • 4. 7 OSI layers HTTP, SMTP, FTP, DNS … 4
  • 5. Application vs. Application layer Application layer provides services for user applications to use. Or, User applications use protocols that reside at the application layer. Ex: Internet Explorer – HTTP; Outlook – SMTP Application layer? 5
  • 6. Hypertext Transfer Protocol an application-level protocol for distributed, collaborative, hypermedia information systems (RFC-2616) Not only text but graphics and multimedia A part of TCP/IP protocols suite HTTP protocol? 6
  • 8. History 1990 – HTTP/0.9 1996 – HTTP/1.0 1999 – HTTP/1.1 Next HTTP/2.0 (draft) HTTP protocol? 8
  • 9. The HTTP protocol is a request/response protocol A client sends a request to the server The server responds data HTTP Communication chain Request Response HTTP Client HTTP Server9
  • 10. HTTP Request/Response Chain with Intermediaries HTTP Communication chain Request Response HTTP Client HTTP ServerIntermediary Request Response Proxy Gateway 10
  • 11. Do not remember previous request/response chain HTTP stateless protocol Request 1 Response 1 HTTP Client HTTP Server Request 2 Response 2 How to maintain state? 11
  • 12. Transitory connection One connection is created for each request/response Persistent connection The connection is kept open after each request/response set until the client is done requesting all the documents. HTTP Transport binding 12
  • 13. GET (*) HEAD (*) POST (*) OPTIONS PUT DELETE TRACE CONNECT HTTP Methods 13
  • 14. GET - Requests data from a specified resource POST - Submits data to be processed to a specified resource HTTP GET vs. POST 14
  • 15. HTTP GET vs. POST 15
  • 16. Communication between devices using the HTTP takes place via HTTP messages Two types: requests and responses. Text-based message format. HTTP Message 16
  • 18. Accept: tell the server what Internet media types it is willing to accept in a response Accept: type/subtype; text/plain; image/jpg; */* Accept-Charset specifies what character sets the client is willing to accept in a response Accept-Charset: iso-8859-5, UTF-8 Accept-Encoding specifies what content encodings the client is willing to accept Accept-Encoding: compress, gzip Accept-Language indicate what languages the client supports Accept-Language: en-gb; vi-vn HTTP Request Headers 18
  • 19. Host: Specifies the Internet host Host: www.vgu.edu.vn:8080 User-Agent Specifies what agent (application) is sending the request User-Agent: Mozilla/5.0 Cookie Cookie data which previously set by the server Cookie: user=1; category=pc; Referer the URL of the resource from which the URL of the current request was obtained Referer: http://google.com HTTP Request Headers (cont.) 19
  • 21. Server Server info that serves the request Server: Apache/2.4.1 (Unix) Expires gives the date/time after which the response is considered Expires: Thu, 20 Jul 2013 16:00:00 GMT Refresh Used in redirection, or when a new resource has been created. Refresh: 5; url=http://www.vgu.edu.vn HTTP Response Headers 21
  • 22. 1xx (Informational): Request received, server is continuing the process. 2xx (Success): The request was successfully received, understood, accepted and serviced. 3xx (Redirection): Further action must be taken in order to complete the request. 4xx (Client Error): The request contains bad syntax or cannot be understood. 5xx (Server Error): The server failed to fulfill an apparently valid request. HTTP Status codes 22
  • 23. 200 OK: The request is fulfilled. 301 Move Permanently: The resource requested for has been permanently moved to a new location 304 Not Modified: Server notifies that the resource requested has not been modified. Common HTTP Status codes 23
  • 24. 400 Bad Request: Server could not understand the request (syntax error). 401 Authentication Required: The requested resource is protected, and require client’s credential. 403 Forbidden: Server refuses to supply the resource, regardless of identity of client. 404 Not Found: The requested resource cannot be found in the server. Common HTTP Status codes 24
  • 25. 500 Internal Server Error: Server is error in the server-side program responding to the request. 503 Service Unavailable: Server cannot response due to overloading or maintenance. The client can try again later. 504 Gateway Timeout: Proxy or Gateway indicates that it receives a timeout from an upstream server. Common HTTP Status codes 25
  • 26. HTTP is a stateless protocol. Cookies provide a mechanism to "maintain state". HTTP Cookie 26
  • 27. Cache: local copy of a resource HTTP Caching Request Response HTTP Client Intermediary Request Response HTTP Server 27
  • 28. Expiration Model How long a resource is valid? Eliminate requests to server Reduce network round-trip Cache-Control: max-age=3600 Expires: Tue, 15 Aug 2013 07:19:00 GMT HTTP Caching 28
  • 29. Validation Model When the resource last changed? Eliminate full response to client Reduce network bandwidth If-Modified-Since: Thu, 17 Aug 2006 17:53:51 GMT ETag: "686897696a7c876b7e" HTTP Caching 29
  • 30. RFC-2616: http://www.w3.org/Protocols/rfc2616/rfc2616.html TCP GUIDE: http://www.tcpipguide.com/free/t_TCPIPHypertextTran sferProtocolHTTP.htm IBM Software Information Center - The HTTP protocol http://publib.boulder.ibm.com/infocenter/cicsts/v3r1/top ic/com.ibm.cics.ts31.doc/dfhtl/topics/dfhtl29.htm References 30

Editor's Notes

  • #6: http://www.tcpipguide.com/free/t_ApplicationLayerLayer7.htm
  • #7: 1.0 http://www.ietf.org/rfc/rfc1945.txt1.1 http://www.w3.org/Protocols/rfc2616/rfc2616.html2.0 http://tools.ietf.org/html/draft-ietf-httpbis-http2-04The Hypertext Transfer Protocol (HTTP) is designed to enable communications between clients and servers.HTTP works as a request-response protocol between a client and server.A web browser may be the client, and an application on a computer that hosts a web site may be the server.Example: A client (browser) submits an HTTP request to the server; then the server returns a response to the client. The response contains status information about the request and may also the requested content.
  • #8: A part of TCP/IP protocols suite
  • #9: 0.9: The first version of HTTP, HTTP/0.9, was part of the early World Wide Web and was a very simple request/response protocol with limited capabilities that could transfer only text files.1.0 http://www.ietf.org/rfc/rfc1945.txtThe first widely-used version was HTTP/1.0, which is a more complete protocol that allows the transport of many types of files and resources.1.1 http://www.w3.org/Protocols/rfc2616/rfc2616.htmlMultiple host name. Multiple host on 1 IPPerformance, security2.0 http://tools.ietf.org/html/draft-ietf-httpbis-http2-04
  • #10: HTTP is a client/server-oriented, request/reply protocol. Basic communication consists of an HTTP Request message sent by an HTTP client to an HTTP server, which returns an HTTP Response message back to the client.
  • #11: Proxy:A proxy is a forwarding agent, receiving requests for a URI in its absolute form, rewriting all or part of the message, and forwarding the reformatted request toward the server.Gateway: receiving agent. A router that routes the data transmission.
  • #13: Persistent connections are connections between a Web client and a server that can be reused for more than one exchange of a request and a response.In HTTP/1.0, the default action for the server was to close the connection when it had received a request from the Web client and sent a response. If the Web client wanted the server to keep the connection open, it had to send a Connection: Keep-Alive header on the request.For HTTP/1.1, persistent connections are the default. When a connection is made between a Web client and a server, the server should keep the connection open by default. The connection should only be closed if the Web client requests closure by sending a Connection: close header, or if the server's timeout setting is reached, or if the server encounters an error.Persistent connections improve network performance because a new connection does not have to be established for each request. Establishing a new connection consumes significant additional network resources compared to making a request using an existing connection.DEMO using telnetDraw HTML document on the WHITEBOARD
  • #14: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.htmlTelnet demo Get and HeadGET:Retrieve a resource.HEAD Like GET, but returns just the HTTP header.POST create new resourceOPTIONS Get information about how the server allows to communicate with. OPTIONS * HTTP/1.1 Host: example.com HTTP/1.1 200 OK Date: … Allow: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE Content-Length: 0PUT Send data to the server.DELETE Delete an existing resource.TRACE Return the request headers sent by the client.
  • #15: Demo Web sniffer tool
  • #18: In this example, the client issues a GET request to ask for a document named "/index.html"; and negotiates to use HTTP/1.0 protocol. A blank line is needed after the request header. This request message does not contain a body.The server receives the request message, interprets and maps the request-URI to a document under its document directory. If the requested document is available, the server returns the document with a response status code "200 OK". The response headers provide the necessary description of the document returned, such as the last-modified date (Last-Modified), the MIME type (Content-Type), and the length of the document (Content-Length). The response body contains the requested document. The browser will format and display the document according to its media type (e.g., Plain-text, HTML, JPEG, GIF, and etc.) and other information obtained from the response headers.
  • #26: DEMO using chrome to access resources
  • #27: Important especially in authenticationNo cookie -> no sessionDEMO login google, yahoo
  • #28: The cache, which is local copies of resources, works because many resources change infrequently. When a browser can reuse a local copy, it saves the time to set up a connection as well as the time to download. The key to making the cache work effectively is HTTP caching headers, which are sent by the web server to specify how long a resource is valid and when it last changed.
  • #29: The Expires header specifies a date after which a resource is invalid. max-age specifies how long a resource is after it is downloaded.DEMOhttp://stevesouders.com/hpws/expiresoff.phphttp://stevesouders.com/hpws/expireson.php
  • #30: If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match