This section explains key elements of the Hypertext Transfer Protocol
(HTTP) and the Transmission Control Protocol/Internet Protocol (TCP/IP).
TCP/IP protocols
TCP/IP is a family of communication protocols used to connect computer
systems in a network, and is named after two of the protocols in the family:
Transmission Control Protocol (TCP) and Internet Protocol (IP). Hypertext
Transfer Protocol (HTTP) is a member of the TCP/IP family.
IP addresses
Each server or client on a TCP/IP internet is identified by a numeric
IP address. IP stands for Internet Protocol.
Host names
A host, or Web site, on the Internet is identified by a host name,
such as www.example.com. Host names are sometimes called
domain names. Host names are mapped to IP addresses, but there is not a one-to-one
relationship between a host name and an IP address.
Virtual hosting
HTTP includes the concept of virtual hosting, where a single HTTP
server can represent multiple hosts at the same IP address.
Port numbers
Within a server, it is possible for more than one user process
to use TCP at the same time. To identify the data associated with each process,
port numbers are used. Port numbers are 16-bit, and numbers up to 65535 are
possible, although in practice only a small subset of these numbers are commonly
used.
IANA media types and character sets
The Internet Assigned Numbers Authority (IANA) is the international
body responsible for assigning names for protocols used on the Internet.
The components of a URL
A URL (Uniform Resource Locator) is a specific type of URI (Universal
Resource Identifier). A URL normally locates an existing resource on the Internet.
A URL is used when a Web client makes a request to a server for a resource.
The HTTP protocol
The correct format for HTTP requests and responses depends on the
version of the HTTP protocol (or HTTP specification) that is used by the client
and by the server.
Status codes and reason phrases
In the HTTP response that is sent to a client, the status code,
which is a three-digit number, is accompanied by a reason phrase (also known
as status text) that summarizes the meaning of the code. Along with the HTTP
version of the response, these items are placed in the first line of the response,
which is therefore known as the status line.
Escaped and unescaped data
To assist with the correct transmission and interpretation of an
HTTP request, there are restrictions on the use of certain characters
within a URL. These characters must be converted to a safe format when the
request is transmitted.
HTML forms
In HTML, forms are areas delimited by a <form> tag,
containing text input boxes, buttons, check boxes, and other features of a
graphical user interface. Forms are used by Web applications to allow end
users to provide data to be sent to the server.
Chunked transfer-coding
Chunked transfer-coding, also known as chunking, involves transferring
the body of a message as a series of chunks, each with its own chunk size
header. The end of the message is indicated by a chunk with zero length and
an empty line.
Pipelining
Pipelining involves a client sending multiple HTTP requests to
a server without waiting for a response. Responses must then be returned from
the server in the same sequence that the requests were received.
Persistent connections
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.
HTTP basic authentication
HTTP basic authentication is a simple challenge and response mechanism
with which a server can request authentication information (a user ID and
password) from a client. The client passes the authentication information
to the server in an Authorization header. The authentication information is
in base-64 encoding.