3 Engineering IoT Networks
145
3.4.1 HyperText Transfer Protocol (HTTP)
The HyperText Transfer Protocol (HTTP) is for the World Wide Web as the water
for the ocean, and therefore all its definitions are likely to seem restrictive. HTTP is a
textual protocol to build distributed, collaborative, hypermedia information systems.
Even if its origin comes back to the invention by Tim Berners-Lee at CERN in 1989,
HTTP is still updated by IETF. In the last years, privacy, authentication, caching,
and connection persistence have been added to fulfill the requirements of the everincreasing types of applications conveyed over HTTP.
HTTP is an Application Layer protocol. Its definition presumes an underlying
and reliable Transport Layer protocol, and Transmission Control Protocol (TCP) is
commonly used. However, HTTP can be adapted to use unreliable protocols such
as the User Datagram Protocol (UDP), for example, in HTTPU and Simple Service
Discovery Protocol (SSDP). HTTP functions as a request/response protocol in the
client/server computing model. A web browser, for example, may be the client and
an application running on a computer hosting a website may be the server. The
client submits the HTTP request message to the server. The server, which provides
resources such as HTML files and other content, or performs other functions on
behalf of the client, returns a response message to the client. The response contains
completion status information about the request and may also contain requested
content in its message body. A web browser is an example of client. Other types of
client include the indexing software used by search providers (web crawlers), voice
browsers, mobile apps, and other software that accesses, consumes, or displays web
content.
HTTP resources are identified and located on the network by Uniform Resource
Locators (URLs), using the Uniform Resource Identifiers (URIs) schemes named
“http” and “https”. An example, including all optional components, is reported
in Fig. 3.26. URIs are encoded as hyperlinks in HTML documents, so as to form
interlinked hypertext documents. In HTTP v1.0 a separate connection to the same
server is made for every resource request. HTTP v1.1 can reuse a connection
multiple times to download images, scripts, stylesheets, etc. after the page has
been delivered. HTTP/1.1 communications therefore experience less latency as the
establishment of TCP connections presents considerable overhead.
HTTP is designed to permit intermediate network elements to improve or enable
communications between clients and servers. High-traffic websites often benefit
from web cache servers that deliver content on behalf of upstream servers to improve
response time. Web browsers cache previously accessed web resources and reuse
them, when possible, to reduce network traffic. HTTP proxy servers at private
Fig. 3.26 Example of Uniform Resource Identifier for HTTP scheme [73]
145
3.4.1 HyperText Transfer Protocol (HTTP)
The HyperText Transfer Protocol (HTTP) is for the World Wide Web as the water
for the ocean, and therefore all its definitions are likely to seem restrictive. HTTP is a
textual protocol to build distributed, collaborative, hypermedia information systems.
Even if its origin comes back to the invention by Tim Berners-Lee at CERN in 1989,
HTTP is still updated by IETF. In the last years, privacy, authentication, caching,
and connection persistence have been added to fulfill the requirements of the everincreasing types of applications conveyed over HTTP.
HTTP is an Application Layer protocol. Its definition presumes an underlying
and reliable Transport Layer protocol, and Transmission Control Protocol (TCP) is
commonly used. However, HTTP can be adapted to use unreliable protocols such
as the User Datagram Protocol (UDP), for example, in HTTPU and Simple Service
Discovery Protocol (SSDP). HTTP functions as a request/response protocol in the
client/server computing model. A web browser, for example, may be the client and
an application running on a computer hosting a website may be the server. The
client submits the HTTP request message to the server. The server, which provides
resources such as HTML files and other content, or performs other functions on
behalf of the client, returns a response message to the client. The response contains
completion status information about the request and may also contain requested
content in its message body. A web browser is an example of client. Other types of
client include the indexing software used by search providers (web crawlers), voice
browsers, mobile apps, and other software that accesses, consumes, or displays web
content.
HTTP resources are identified and located on the network by Uniform Resource
Locators (URLs), using the Uniform Resource Identifiers (URIs) schemes named
“http” and “https”. An example, including all optional components, is reported
in Fig. 3.26. URIs are encoded as hyperlinks in HTML documents, so as to form
interlinked hypertext documents. In HTTP v1.0 a separate connection to the same
server is made for every resource request. HTTP v1.1 can reuse a connection
multiple times to download images, scripts, stylesheets, etc. after the page has
been delivered. HTTP/1.1 communications therefore experience less latency as the
establishment of TCP connections presents considerable overhead.
HTTP is designed to permit intermediate network elements to improve or enable
communications between clients and servers. High-traffic websites often benefit
from web cache servers that deliver content on behalf of upstream servers to improve
response time. Web browsers cache previously accessed web resources and reuse
them, when possible, to reduce network traffic. HTTP proxy servers at private
Fig. 3.26 Example of Uniform Resource Identifier for HTTP scheme [73]
