Hypertext Transfer Protocol and Simple Mail Transfer Protocol
As I am unable to lecture for the lecture slots for the week starting 2 April 2001, and on 17 April 2001, I have produced some self-study information on HTTP, the Hypertext Transfer Protocol and SMTP, the Simple Mail Transfer Protocol. There will be a tutorial on this material in the week after mid-semester break, that is, the week starting 16 April 2001
Hypertext Transfer Protocol
The material you should cover is the following:
- HTTP overview
- You should be familiar with the terms client, server, proxy, user agent, URL, cache, stateless protocol and how they apply to HTTP
- HTTP overall operation
- How HTTP runs. This is well described in section 1.4 of RFC 2616
- HTTP messages
- HTTP has two types of messages, requests and responses. Requests can be simple or full, as can responses. Simple requests and responses originate with HTTP 0.9, but are now discouraged. Full requests and responses consist of a header line, followed by the entity body. The header line can be a general header or an entity header or either a request header (full request) or a response header (full response). Overview information can be found in Stallings pp731-739, or in http://www.rad.com/networks/1999/http/tutorial/andprev.htm. Real detail can be found in section 4 of RFC 2616.
-
Useful references: Stallings section 19.4 (pp726-739), Tanenbaum 681-695 (bit thin), and on the following websites:
Simple Mail Transfer Protocol
The material you should cover is the following:
- Basic SMTP operation
- Messages in outgoing queue: character set (ASCII), Message format (Header, text, destinations)
SMTP sender function: takes messages from queue and transmits them over TCP to port 25 on receiving hosts.
Sender must deal with certain errors
SMTP protocol (see later)
SMTP receiver: accepts messages, places them in user mailbox or outgoing queue
- SMTP overview
- series of four-letter commands: see table 19.5 in Stallings tables from Ch 19. The replies to the commands are generally single line, and are described in table 19.6 in Stallings tables from Ch 19.
Actual connection setup uses TCP to open a connection to port 25, leading to the receipt of the message "220 Service Ready". The sender then issues a HELO command.
Mail transfer uses MAIL, RCPT and DATA commands
Connection closure uses QUIT command.
Details of actual message interchanges can be found in the references below
- MIME
- Why MIME: SMTP is restricted to 7-bit ASCII. No code, or binary objects
MIME provides new message header fields, identifying the data so that the receiver can pick the appropriate application, and decode the data correctly.
Many content types exist, some are given in Table 19.7 of Stallings tables from Ch 19
Body can contain multiple parts, with boundaries between them
A number of different encodings are permitted: see Table 19.8 of Stallings tables from Ch 19
Useful references: Stallings pp 711-726, Tanenbaum 643-661, and on the web, there is an SMTP tutorial. In addition there is a very useful if rather long and detailed Internet draft on SMTP.
Back to 31W6 home page.
Last updated, 28 March 2001 LSS