references
Don Parker. The basic journey of a packet
Berners-Lee, Tim, Roy Fielding, and Henrik Frystyk. Hypertext transfer protocol--HTTP/1.0. No. RFC 1945. 1996. (read at least sections 1&2)
Berners-Lee, T., Fielding, R., & Masinter, L. 2004. Uniform resource identifier (URI): Generic syntax (No. RFC 3986).
Postel, Jon. 1994. Domain Name System Structure and Delegation. RFC 1591, Network Working Group.
Severance, C. 2015. Roy T. Fielding: Understanding the REST Style. Computer, 48(6), 7-9.
some notes
Maintained by the IETF
Layers
http://en.wikipedia.org/wiki/Link_layer (e.g. Ethernet)
Communication on local networks
Ethernet developed at Xerox PARC by Metcalfe and Boggs
Metcalfe later founds 3com, now part of HP
Others: DSL, ISDN, FDDI
Internet layer (IP)
Connects local networks, "internetworking"
Transport layer (e.g., TCP)
Host to host communication
Developed by Kahn and Cerf
TCP: transmission control protocol
Others: UDP, DCCP...
Application layer (e.g. HTTP)
Data specific, app to app or process to process communication
Others: DHCP, DNS, FTP, IMAP, IRC, LDAP, POP, RPC, SMTP, SSH, Telnet...
Terminology
IP address: numeric address of a networked machine
Static: unchanging
Dynamic: assigned on networks dynamically, for automation and efficient use of address space
domain name: a character string identifying a networked machine/resource/service
root domain: nameless
subdomains:
first level/top level domains (TLDs)
generic: .com, .org, .edu...
country: .uk, .de...
administered by ICANN
second and third level
reserved for users and sold by domain name registrars, authorized by ICANN
syntax
hierarchy of domains descends right to left
rightmost: the tld
hostname: any domain name that has at least one associated IP address
Not all domain names are hostnames
domain name system (DNS)
the hierarchical domain name system
domain name server
one of many distributed servers that turn domain names into IP addresses
URL: uniform resource locator - reference to a network resource
Developed by Tim Berners-Lee
syntax: scheme://domain:port/path?query_string#fragment_identify
scheme: app layer protocol, e.g. http
domain: domain name or IP address
port: which port to connect to. Defaults exist for each scheme
path: where (e.g. directory) to find the resource on the server
query string: data to be passed to the server, name value pairs separated by ampersands
fragment identifier: a part or position within the resource or document, e.g. a section
HTTP: hypertext transfer protocol - app level protocol for hypermedia information systems
Developed by Tim Berners-Lee
A request response protocol in the client server model.
E.g. browser is client, and site runs on server
Methods that a client can request
GET: a request for the page resource, for example, some html. Should have no side effects. Part of the http 1.0 spec.
POST: submits some data for processing, e.g. to an html form. Http 1.0.
HEAD: a request for the header of the page resource only, not the body. When you want meta information only. Http 1.0.
PUT: uploads a new version of the resource. Http 1.1.
DELETE: deletes the resource. Http 1.1.
TRACE: return the request as received, to examine any changes made along the way. Http 1.1.
OPTIONS: returns the methods supported by the server. Http 1.1.
CONNECT: convert connection to a tunnel, usually for encryption. Http 1.1.
PATCH: partial modification of resource.