Characteristics of the web
You must memorize this content. You should be able to recognize these acronyms and identify the characteristics of each. The video below is an EXCELLENT introduction and overview of the web:
The Hypertext Transfer Protocol (HTTP) is an application protocol for distributed, collaborative, and hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web..
- Click here for an excellent cs50 video which describes http
- Please click here for a list of http response codes
- Please click here for instructions to view http requests in google chrome
- Click here for a diagram describing the HTTP process
- HTTP is an application-layer protocol
- HTTP functions as a request–response protocol 
- HTTP is the protocol to exchange or transfer hypertext 
- HTTP is stateless - Each transaction between the client and server is independent and no state is set based on a previous transaction or condition.
- HTTP Uses requests from the client to the server and responses from the server to the client for sending and receiving data. 
- HTTP utilizes headers at the start of each message.
HTTPS (also called HTTP over TLS, HTTP over SSL, and HTTP Secure) is a protocol for secure communication over a computer network which is widely used on the Internet. HTTPS consists of communication over Hypertext Transfer Protocol (HTTP) within a connection encrypted by Transport Layer Security, or its predecessor, Secure Sockets Layer. The main motivation for HTTPS is authentication of the visited website and protection of the privacy and integrity of the exchanged data.
Transport Layer Security (TLS) is a cryptographic protocols that provide communications security over a computer network..
The characteristics of TLS are:
- The connection is private (or secure) because symmetric cryptography is used to encrypt the data transmitted. The keys for this symmetric encryption are generated uniquely for each connection and are based on a shared secret negotiated at the start of the session. The server and client negotiate the details of which encryption algorithm and cryptographic keys to use before the first byte of data is transmitted. The negotiation of a shared secret is both secure (the negotiated secret is unavailable to eavesdroppers and cannot be obtained, even by an attacker who places themselves in the middle of the connection) and reliable (no attacker can modify the communications during the negotiation without being detected).
- The identity of the communicating parties can be authenticated using public-key cryptography. This authentication can be made optional, but is generally required for at least one of the parties (typically the server).
- The connection ensures integrity because each message transmitted includes a message integrity check using a message authentication code to prevent undetected loss or alteration of the data during transmission.
- HTTPS URLs begin with "https://" and use port 443 by default, whereas HTTP URLs begin with "http://" and use port 80 by default
- HTTPS encrypts the request and response. If you were to snoop (or spy) on the network data, you would only (theoretically) see the origin and destination IP and port numbers
- HTTPS piggybacks (or rides) on top of HTTP
The RFCs state the actions that a client and a server perform to exchange requests and responses in an appropriate way for each version of the HTTP protocol. An HTTP request is made by a client, to a named host, which is located on a server. The aim of the request is to access a resource on the server. An HTTP response is made by a server to a client. The aim of the response is to provide the client with the resource it requested, or to inform the client that the action it requested has been carried out, or to inform the client that an error occurred in processing its request. All these actions are described as "requirements". A client or server that fulfils the requirements for its version of the HTTP protocol is said to be "compliant" with the HTTP specification. In the HTTP response that is sent to a client, the status code, which is a 3-digit number, is accompanied by a reason phrase (also known as status text) that summarizes the meaning of the code. 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.
- HTML is a markup language. A markup language is a system for annotating a document in a way that is syntactically distinguishable from the text 
- HTML markup consists of several key components, including those called tags (and their attributes), character-based data types, character references and entity references.
- HTML tags most commonly come in pairs although some represent empty elements and so are unpaired. 
- The first tag in such a pair is the start tag, and the second is the end tag (they are also called opening tags and closing tags).
A Uniform Resource Locator (URL), is a reference to a web resource that specifies its location on a computer network and a mechanism for retrieving it. A URL is a specific type of Uniform Resource Identifier (URI).
- URL's have different parts. Every URL MUST have:
- scheme, path and host
- URL's have different parts. Every URL MIGHT have:
- user information
A URL for HTTP (or HTTPS) is normally made up of three or four components:
- A scheme. The scheme identifies the protocol to be used to access the resource on the Internet. It can be HTTP (without SSL) or HTTPS (with SSL).
- A host. The host name identifies the host that holds the resource. For example, www.example.com. A server provides services in the name of the host, but hosts and servers do not have a one-to-one mapping. Refer to Host names. Host names can also be followed by a port number. Refer to Port numbers. Well-known port numbers for a service are normally omitted from the URL. Most servers use the well-known port numbers for HTTP and HTTPS , so most HTTP URLs omit the port number.
- A path. The path identifies the specific resource in the host that the web client wants to access. For example, /software/htp/cics/index.html.
- A query string. If a query string is used, it follows the path component, and provides a string of information that the resource can use for some purpose (for example, as parameters for a search or as data to be processed). The query string is usually a string of name and value pairs; for example, term=bluebird. Name and value pairs are separated from each other by an ampersand (&); for example, term=bluebird&source=browser-search.
The scheme and host components of a URL are not defined as case-sensitive, but the path and query string are case-sensitive. Typically, the whole URL is specified in lowercase.
The components of the URL are combined and delimited as follows:
- The scheme is followed by a colon and two forward slashes.
- If a port number is specified, that number follows the host name, separated by a colon.
- The path name begins with a single forward slash.
- If a query string is specified, it is preceded by a question mark.
Please click here for an example of these different parts. In your normal day-to-day use, you probably only use a scheme, path and a host.
In computing, Extensible Markup Language (XML) is a markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable.
- Please click here for an example XML file.
- Please click here for the official W3C specification for XML.
- XML consists mostly of markup and content
- XML has tags.
- A tag is a markup construct that begins with < and ends with >. Tags come in three flavors, start tag, end tag, and empty-element tag
- XML may have a declaration that describes some information about themselves.
XSLT (Extensible Stylesheet Language Transformations) is a language for transforming XML documents into other XML documents or other formats such as HTML for web pages, plain text or XSL Formatting Objects, which may subsequently be converted to other formats, such as PDF, PostScript and PNG. XSLT 1.0 is widely supported in modern web browsers. 
- For an interesting discussion the relative pros and cons of xslt, please click here.
- Please watch this video for an example XSLT in action!
- Please click here for a list of elements in XLST
- XSLT changes XML documents in other documents
Cascading Style Sheets (CSS) is a style sheet language used for describing the presentation of a document written in a markup language. CSS is designed primarily to enable the separation of document content from document presentation, including aspects such as the layout, colors, and fonts. This separation can improve content accessibility, provide more flexibility and control in the specification of presentation characteristics, enable multiple HTML pages to share formatting by specifying the relevant CSS in a separate .css file, and reduce complexity and repetition in the structural content. 
- CSS has selectors. Selectors declare which part of the markup a style applies to by matching tags and attributes in the markup itself.
- CSS has declaration block. A declaration block consists of a list of declarations in braces. Each declaration itself consists of a property, a colon (:), and a value.
- CSS has specificity. Specificity refers to the relative weights of various rules. It determines which styles apply to an element when more than one rule could apply.
- CSS has inheritance. Inheritance is a key feature in CSS; it relies on the ancestor-descendant relationship to operate. Inheritance is the mechanism by which properties are applied not only to a specified element, but also to its descendants
Do you understand this?
You must simply memorize these. There isn't anything fancy about this. If you need help memorizing, please use a mnemonic strategy.
- Please print (and fill out with a pen or pencil) this PDF file.
- Please make a copy of this document and fill it out.
These standards are used from the IB Computer Science Subject Guide
- Identify the characteristics of the following: HTTP, HTTPS, HTML, URL, XML, XSLT, CSS.
- IB Diploma Programme Computer science guide (first examinations 2014). Cardiff, Wales, United Kingdom: International Baccalaureate Organization. January 2012.