HTTP
Hypertext Transfer Protocol
HTTP 2
What It Is
 Protocol for transfer of various data
formats between server and client
– Plaintext
– Hypertext
– Images
– Video
– Sound
 Meta-information also transferred
HTTP 3
Uniform Resources
 URL
– Uniform Resource Locator
– Refers to an existing protocol
 http:, wais:, ftp:, mailto:, gopher:, news:
– Points to a document on a specific server
 URN
– Uniform Resource Name
– Globally unique, persistent identifier
 Independent of location
HTTP 4
Uniform Resources
 URI
– Uniform Resource Identifier
– Collection of URL’s and URN’s
HTTP 5
URL
 <scheme> : //<host> :<port>
/<path> ;<parameters> ?<query>
#<fragment>
– scheme
 The protocol you are using
– host
 Host name or ip number
– port
 TCP port number that protocol server is using
– path
 Path and filename reference of object on server
HTTP 6
URL
 <scheme> : //<host> :<port>
/<path> ;<parameters> ?<query>
#<fragment>
– parameters
 Any specific parameters that object needs
– query
 Query string for a CGI program
– fragment
 Reference to a subset of an object
HTTP 7
URL and HTTP
 All parts of URL, except parameters,
used with http
 Scheme and host can be omitted when
referenced object is on same machine
as referring document
 Port can be omitted so long as
referenced host is running on port listed
in your /etc/services file
– Usually port 80
HTTP 8
URL and HTTP
 Full path used when referring to
another server
– Relative path on same server
 Reference with relative path is a partial URL
 Query passes parameters to CGI
 Fragment jumps to labels within a page
– http://www.x.y/z#foo
HTTP 9
Web Documents
– html
– ASCII text
– Preformatted
 postscript
– Images
 GIF
 JPEG
– Video
 MPEG
– VRML
– Java
HTTP 10
Communication
 Server tells client what type of
information is coming before
information arrives
– File extensions
 .html .htm
 .txt
 .ps
 .au
 .gif .tiff .jpeg
 .mpeg
 .vrml .wrl
 .java
HTTP 11
Communication
 Text and inline images
– Separate objects
 Client browser may optionally send a
list of formats it can accept
 Document can be a program
– Web server executes program and sends
results to client
– Generic term for this program is script,
gateway, or gateway script
HTTP 12
Scripts
 Translates input from client
 Calls other programs
 Translates output from programs and
returns it to client
HTTP 13
Gateways
 Translates from one protocol or service
to another
– HTTP / database query
– Database query results / HTTP
HTTP 14
HTTP 1.0
 Berners Lee, Fielding, Nielsen - 1995
 Used in hypermedia systems distributed
across networks
 Defines request-response conversation
– Requesting program (client) establishes
connection with receiving program (server)
– Client sends request to server
 HTTP specifies syntax
HTTP 15
HTTP 1.0
 Defines request-response conversation
– Server replies with response
 http specifies syntax
 Does not handle network connectivity
or how information is transmitted
 TCP/IP does this
HTTP 16
HTTP 1.0
 HTTP request
– Method
– URI
– Protocol version
– Optional other information
– Method [Request URI] HTTP/1.0 <CRLF>
HTTP 17
HTTP 1.0
 Method
– Get
 Returns object
– Head
 Returns information about object
– Post
 Sends information to be stored on server or as
input to script
HTTP 18
HTTP 1.0
 Method
– Put
 Sends new copy of existing object to server
 Usually not allowed
– Delete
 Deletes object
 Usually not allowed
HTTP 19
HTTP 1.0
 Other information
– User Agent
 Kind of browser
– If-Modified-Since
 Returns object only if more recent than given
date
 Otherwise returns status code 304
HTTP 20
HTTP 1.0
 Other information
– Accept
 Mime types which browser can accept
– Multipurpose Internet Mail Extension
 text/plain
 text/html
 application/postscript
 image/gif
 image/jpeg
 audio/basic
 video/mpeg
 x-world/x-vrml
HTTP 21
HTTP 1.0
 Other information
– Authorization
 User password
GET /X/Y/Z.HTML HTTP 1.0
User Agent: Prodigy-WB/1.3e
Accept: text/plain
Accept: text/html
Accept: application/postscript
Accept: image/gif
– Accept: */*
HTTP 22
HTTP 1.0
 HTTP response
– Status line
 HTTP-version Status-code Reason
 Status-codes 1xx - Informational
– Reserved for future use
HTTP 23
HTTP 1.0
 HTTP response
– Status line
 Status-codes 2xx - Success
– The action was successfully received, understood,
and accepted
 200 OK
 201 POST command successful
 202 Request accepted
 203 GET or HEAD request fulfilled
 204 No content
HTTP 24
HTTP 1.0
 HTTP response
– Status line
 Status-codes 3xx - Redirection
– Further action must be taken in order to complete
request
 300 Resource found at multiple locations
 301 Resource moved permanently
 302 Resource moved temporarily
 304 Resource has not modified (since date)
HTTP 25
HTTP 1.0
 HTTP response
– Status line
 Status-codes 4xx - Client error
– The request contains bad syntax or cannot be
fulfilled
 400 Bad request from client
 401 Unauthorized request
 402 Payment required for request
 403 Resource access forbidden
 404 Resource not found
 405 Method not allowed for resource
 406 Resource type not acceptable
HTTP 26
HTTP 1.0
 HTTP response
– Status line
 Status-codes 5xx - Server error
– The server failed to fulfill an apparently valid request
 500 Internal server error
 501 Method not implemented
 502 Bad gateway or server overload
 503 Service unavailable / gateway timeout
 504 Secondary gateway / server timeout
HTTP 27
HTTP 1.0
 HTTP response
– Description of information
 Server Type of server
 Date Date and time
 Content-Length Number of bytes
 Content-Type Mime type
 Content-Language English, for example
 Content-Encoding Data compression
 Last-Modified Date when last modified
 Expires Date when file becomes
invalid
HTTP 28
HTTP 1.0
 Problems
– HTTP is stateless
 Each request requires separate TCP connection
 Server doesn’t remember previous requests
HTTP 29
Evolution of HTTP
 HTTP/0.9 - 1990
– Request method + URI + crlf
 GET /pets/index.html
 Just file contents sent back
– No header information
 Gopher influence
– Media types
 Single character indicated one of ten types
HTTP 30
Evolution of HTTP
 HTTP/1.0 - 1995
– Meta-information between client and
server
 Media types
– MIME type/subtype
 Status codes
 This information influenced the development of
web search engines
– Caching
– Authorization
HTTP 31
Evolution of HTTP
 HTTP/1.0 - 1995
– Problems
 Scalability
– High number of clients visit server for short time
 Flash crowd
 Bandwidth
HTTP 32
Evolution of HTTP
 HTTP/1.1
– Byte ranges
 Request of a document subset
– Adobe's Portable Document Format
– Streaming multimedia
 Eliminates unnecessary client/server
communication
 An interrupted transfer which is restarted can
be more efficient
HTTP 33
Evolution of HTTP
 HTTP/1.1
– Content negotiation with quality factors
 Quality factors
– Real numbers between 0 and 1
 Default is 1
 Accept-Language: fr, en-gb; q=0.8, en; q=0.7
HTTP 34
Evolution of HTTP
 HTTP/1.1
– Chunked encoding
 Transmission of streaming multimedia
– One frame varies in size and composition from the
next
 Streaming video
– Entire image transmitted in first chunk and
differences to the previous image are transmitted in
the next chunk
HTTP 35
Evolution of HTTP
 HTTP/1.1
– Protocol switching
 Client can specify another protocol more suited
to data being transferred
– Message integrity checks
– Digest authentication
 In HTTP/1.0, user sent username and password
over the network
 In HTTP/1.1, the client and the server never
send the actual username or password over the
network
HTTP 36
Evolution of HTTP
 HTTP/1.1
– Persistent connections
 In HTTP/1.0, if a single page includes inline
images, multiple frames, animation, and other
external references, to browse this page would
require many reconnections
 In HTTP/1.1 there are multiple
request/response transactions per connection
 Clients can pipeline requests to the server by
sending multiple requests at start of session
HTTP 37
Evolution of HTTP
 HTTP/1.1
– Cache management with entity tags
 When body of URI changes, so does its entity
tag
– Useful for maintaining caches, as updated URI
information would have a different entity tag
 Can tell if same resource is being cached from
multiple URI's as it would have same entity tag
 Strong entity tag
– Changes when any portion of resource changes
 One or more bytes change
 Weak entity tag
– Changes only when semantics of entity-body
changes
HTTP 38
Evolution of HTTP
 HTTP/1.1
– Software multihoming
 Number of available IP addresses is a concern
 In HTTP/1.0, server could have multiple DNS
entries and IP addresses, each corresponding
to different document tree
 In HTTP/1.1, server could have multiple DNS
entries and only a single IP address
HTTP 39
The Future
 HTTP-Next Generation
– Many channels
 One TCP connection carries multiple channels
for parallel communication
 Different protocols on each channel
– Traditional way
 Multiple TCP connections between same client
and server
 Pages contain images, video, audio, and html
HTTP 40
The Future
 Extensibility
– Adding new MIME headers has been the
traditional way of extending http
– Drawbacks
 No indication whether receiving end
understands these extensions
 No indication whether extension is intended for
all parties along message path or only for
certain intermediaries
 No indication of order in which extensions
should be interpreted
HTTP 41
The Future
 Extensibility
– PEP
 Protocol Extension Protocol
HTTP 42
The Future
 Performance
– Parsing MIME headers wastes resources
– Sticky headers
 Persistent state between multiple http requests
 Not all headers have to be included in every
http message
 Distributed authoring
– Event notification
HTTP 43
The Future
 Caching and replication
– Popular sites are really popular
– Flash crowds happen
– Hot spots on the net are dynamic
– Amount of dynamic data is increasing
HTTP 44
The Future
 QoS
– Quality of service
– Not everything must be treated with same
QoS
– Required QoS should be made at the user-
interface
HTTP 45
The Future
 Real-time protocols and the web
– Streaming protocols
 Audio/video-on-demand

HTTP_2.ppt

  • 1.
  • 2.
    HTTP 2 What ItIs  Protocol for transfer of various data formats between server and client – Plaintext – Hypertext – Images – Video – Sound  Meta-information also transferred
  • 3.
    HTTP 3 Uniform Resources URL – Uniform Resource Locator – Refers to an existing protocol  http:, wais:, ftp:, mailto:, gopher:, news: – Points to a document on a specific server  URN – Uniform Resource Name – Globally unique, persistent identifier  Independent of location
  • 4.
    HTTP 4 Uniform Resources URI – Uniform Resource Identifier – Collection of URL’s and URN’s
  • 5.
    HTTP 5 URL  <scheme>: //<host> :<port> /<path> ;<parameters> ?<query> #<fragment> – scheme  The protocol you are using – host  Host name or ip number – port  TCP port number that protocol server is using – path  Path and filename reference of object on server
  • 6.
    HTTP 6 URL  <scheme>: //<host> :<port> /<path> ;<parameters> ?<query> #<fragment> – parameters  Any specific parameters that object needs – query  Query string for a CGI program – fragment  Reference to a subset of an object
  • 7.
    HTTP 7 URL andHTTP  All parts of URL, except parameters, used with http  Scheme and host can be omitted when referenced object is on same machine as referring document  Port can be omitted so long as referenced host is running on port listed in your /etc/services file – Usually port 80
  • 8.
    HTTP 8 URL andHTTP  Full path used when referring to another server – Relative path on same server  Reference with relative path is a partial URL  Query passes parameters to CGI  Fragment jumps to labels within a page – http://www.x.y/z#foo
  • 9.
    HTTP 9 Web Documents –html – ASCII text – Preformatted  postscript – Images  GIF  JPEG – Video  MPEG – VRML – Java
  • 10.
    HTTP 10 Communication  Servertells client what type of information is coming before information arrives – File extensions  .html .htm  .txt  .ps  .au  .gif .tiff .jpeg  .mpeg  .vrml .wrl  .java
  • 11.
    HTTP 11 Communication  Textand inline images – Separate objects  Client browser may optionally send a list of formats it can accept  Document can be a program – Web server executes program and sends results to client – Generic term for this program is script, gateway, or gateway script
  • 12.
    HTTP 12 Scripts  Translatesinput from client  Calls other programs  Translates output from programs and returns it to client
  • 13.
    HTTP 13 Gateways  Translatesfrom one protocol or service to another – HTTP / database query – Database query results / HTTP
  • 14.
    HTTP 14 HTTP 1.0 Berners Lee, Fielding, Nielsen - 1995  Used in hypermedia systems distributed across networks  Defines request-response conversation – Requesting program (client) establishes connection with receiving program (server) – Client sends request to server  HTTP specifies syntax
  • 15.
    HTTP 15 HTTP 1.0 Defines request-response conversation – Server replies with response  http specifies syntax  Does not handle network connectivity or how information is transmitted  TCP/IP does this
  • 16.
    HTTP 16 HTTP 1.0 HTTP request – Method – URI – Protocol version – Optional other information – Method [Request URI] HTTP/1.0 <CRLF>
  • 17.
    HTTP 17 HTTP 1.0 Method – Get  Returns object – Head  Returns information about object – Post  Sends information to be stored on server or as input to script
  • 18.
    HTTP 18 HTTP 1.0 Method – Put  Sends new copy of existing object to server  Usually not allowed – Delete  Deletes object  Usually not allowed
  • 19.
    HTTP 19 HTTP 1.0 Other information – User Agent  Kind of browser – If-Modified-Since  Returns object only if more recent than given date  Otherwise returns status code 304
  • 20.
    HTTP 20 HTTP 1.0 Other information – Accept  Mime types which browser can accept – Multipurpose Internet Mail Extension  text/plain  text/html  application/postscript  image/gif  image/jpeg  audio/basic  video/mpeg  x-world/x-vrml
  • 21.
    HTTP 21 HTTP 1.0 Other information – Authorization  User password GET /X/Y/Z.HTML HTTP 1.0 User Agent: Prodigy-WB/1.3e Accept: text/plain Accept: text/html Accept: application/postscript Accept: image/gif – Accept: */*
  • 22.
    HTTP 22 HTTP 1.0 HTTP response – Status line  HTTP-version Status-code Reason  Status-codes 1xx - Informational – Reserved for future use
  • 23.
    HTTP 23 HTTP 1.0 HTTP response – Status line  Status-codes 2xx - Success – The action was successfully received, understood, and accepted  200 OK  201 POST command successful  202 Request accepted  203 GET or HEAD request fulfilled  204 No content
  • 24.
    HTTP 24 HTTP 1.0 HTTP response – Status line  Status-codes 3xx - Redirection – Further action must be taken in order to complete request  300 Resource found at multiple locations  301 Resource moved permanently  302 Resource moved temporarily  304 Resource has not modified (since date)
  • 25.
    HTTP 25 HTTP 1.0 HTTP response – Status line  Status-codes 4xx - Client error – The request contains bad syntax or cannot be fulfilled  400 Bad request from client  401 Unauthorized request  402 Payment required for request  403 Resource access forbidden  404 Resource not found  405 Method not allowed for resource  406 Resource type not acceptable
  • 26.
    HTTP 26 HTTP 1.0 HTTP response – Status line  Status-codes 5xx - Server error – The server failed to fulfill an apparently valid request  500 Internal server error  501 Method not implemented  502 Bad gateway or server overload  503 Service unavailable / gateway timeout  504 Secondary gateway / server timeout
  • 27.
    HTTP 27 HTTP 1.0 HTTP response – Description of information  Server Type of server  Date Date and time  Content-Length Number of bytes  Content-Type Mime type  Content-Language English, for example  Content-Encoding Data compression  Last-Modified Date when last modified  Expires Date when file becomes invalid
  • 28.
    HTTP 28 HTTP 1.0 Problems – HTTP is stateless  Each request requires separate TCP connection  Server doesn’t remember previous requests
  • 29.
    HTTP 29 Evolution ofHTTP  HTTP/0.9 - 1990 – Request method + URI + crlf  GET /pets/index.html  Just file contents sent back – No header information  Gopher influence – Media types  Single character indicated one of ten types
  • 30.
    HTTP 30 Evolution ofHTTP  HTTP/1.0 - 1995 – Meta-information between client and server  Media types – MIME type/subtype  Status codes  This information influenced the development of web search engines – Caching – Authorization
  • 31.
    HTTP 31 Evolution ofHTTP  HTTP/1.0 - 1995 – Problems  Scalability – High number of clients visit server for short time  Flash crowd  Bandwidth
  • 32.
    HTTP 32 Evolution ofHTTP  HTTP/1.1 – Byte ranges  Request of a document subset – Adobe's Portable Document Format – Streaming multimedia  Eliminates unnecessary client/server communication  An interrupted transfer which is restarted can be more efficient
  • 33.
    HTTP 33 Evolution ofHTTP  HTTP/1.1 – Content negotiation with quality factors  Quality factors – Real numbers between 0 and 1  Default is 1  Accept-Language: fr, en-gb; q=0.8, en; q=0.7
  • 34.
    HTTP 34 Evolution ofHTTP  HTTP/1.1 – Chunked encoding  Transmission of streaming multimedia – One frame varies in size and composition from the next  Streaming video – Entire image transmitted in first chunk and differences to the previous image are transmitted in the next chunk
  • 35.
    HTTP 35 Evolution ofHTTP  HTTP/1.1 – Protocol switching  Client can specify another protocol more suited to data being transferred – Message integrity checks – Digest authentication  In HTTP/1.0, user sent username and password over the network  In HTTP/1.1, the client and the server never send the actual username or password over the network
  • 36.
    HTTP 36 Evolution ofHTTP  HTTP/1.1 – Persistent connections  In HTTP/1.0, if a single page includes inline images, multiple frames, animation, and other external references, to browse this page would require many reconnections  In HTTP/1.1 there are multiple request/response transactions per connection  Clients can pipeline requests to the server by sending multiple requests at start of session
  • 37.
    HTTP 37 Evolution ofHTTP  HTTP/1.1 – Cache management with entity tags  When body of URI changes, so does its entity tag – Useful for maintaining caches, as updated URI information would have a different entity tag  Can tell if same resource is being cached from multiple URI's as it would have same entity tag  Strong entity tag – Changes when any portion of resource changes  One or more bytes change  Weak entity tag – Changes only when semantics of entity-body changes
  • 38.
    HTTP 38 Evolution ofHTTP  HTTP/1.1 – Software multihoming  Number of available IP addresses is a concern  In HTTP/1.0, server could have multiple DNS entries and IP addresses, each corresponding to different document tree  In HTTP/1.1, server could have multiple DNS entries and only a single IP address
  • 39.
    HTTP 39 The Future HTTP-Next Generation – Many channels  One TCP connection carries multiple channels for parallel communication  Different protocols on each channel – Traditional way  Multiple TCP connections between same client and server  Pages contain images, video, audio, and html
  • 40.
    HTTP 40 The Future Extensibility – Adding new MIME headers has been the traditional way of extending http – Drawbacks  No indication whether receiving end understands these extensions  No indication whether extension is intended for all parties along message path or only for certain intermediaries  No indication of order in which extensions should be interpreted
  • 41.
    HTTP 41 The Future Extensibility – PEP  Protocol Extension Protocol
  • 42.
    HTTP 42 The Future Performance – Parsing MIME headers wastes resources – Sticky headers  Persistent state between multiple http requests  Not all headers have to be included in every http message  Distributed authoring – Event notification
  • 43.
    HTTP 43 The Future Caching and replication – Popular sites are really popular – Flash crowds happen – Hot spots on the net are dynamic – Amount of dynamic data is increasing
  • 44.
    HTTP 44 The Future QoS – Quality of service – Not everything must be treated with same QoS – Required QoS should be made at the user- interface
  • 45.
    HTTP 45 The Future Real-time protocols and the web – Streaming protocols  Audio/video-on-demand