HTTP, HTTPS, HTML, URL, XML, XSLT, CSS: Difference between revisions

From Computer Science Wiki
 
(58 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[file:Connection.png|right|frame|Web Science<ref>http://www.flaticon.com/</ref>]]
[[file:Connection.png|right|frame|Web Science<ref>http://www.flaticon.com/</ref>]]


Students will be expected to be aware of the major differences between the early forms of the web, Web 2.0, the semantic web and later developments.


== Characteristics of the web  ==
== Characteristics of the web  ==


{| style="width: 95%;" class="wikitable"
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:
|-
 
| '''Term''' || '''Definition''' || '''Characteristics'''
<html>
|-
<iframe width="560" height="315" src="https://www.youtube.com/embed/guvsH5OFizE" frameborder="0" allowfullscreen></iframe>
| '''HTTP'''  ||  
</html>
Definition here
 
||
== HTTP Definition ==
Characteristics here
 
|-
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.<ref>https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol</ref>.
| '''HTTPS'''  ||  
 
Definition here
* [https://www.youtube.com/watch?v=iy6xhPB12V8 Click here for an excellent cs50 video which describes http]
||
* [https://en.wikipedia.org/wiki/List_of_HTTP_status_codes Please click here for a list of http response codes]
Characteristics here
* [http://www.mkyong.com/computer-tips/how-to-view-http-headers-in-google-chrome/ Please click here for instructions to view http requests in google chrome]
|-
* [[Media:HTTP diagram.png|Click here for a diagram describing the HTTP process]]<ref>https://www.lsr.com/white-papers/the-power-of-802-15-4-and-ethernet</ref>
| '''HTML'''  ||  
fin
Definition here
 
||
== HTTP Characteristics ==
Characteristics here
 
|-
* HTTP is an application-layer protocol
| '''URL'''  || 
* HTTP functions as a request–response protocol <ref>https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol</ref>
Definition here
* HTTP is the protocol to exchange or transfer hypertext <ref>https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol</ref>
||
* HTTP is stateless - Each transaction between the client and server is independent and no state is set based on a previous transaction or condition.<ref>http://www.comptechdoc.org/independent/web/http/reference/httprfccopy.html</ref>
Characteristics here
* HTTP Uses requests from the client to the server and responses from the server to the client for sending and receiving data. <ref>http://www.comptechdoc.org/independent/web/http/reference/</ref>
|-
* HTTP utilizes headers at the start of each message.<ref>http://www.comptechdoc.org/independent/web/http/reference/</ref>
| '''XML''' || 
fin
Definition here
 
||
== HTTPS Definition ==
Characteristics here
 
|-
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.<ref>https://en.wikipedia.org/wiki/HTTPS</ref>
| '''XSLT'''  || 
 
Definition here
Transport Layer Security (TLS) is a cryptographic protocols that provide communications security over a computer network.<ref>https://en.wikipedia.org/wiki/Transport_Layer_Security</ref>.
||
 
Characteristics here
The characteristics of TLS are:
|-
 
| '''CSS''' ||  
* 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).
Definition here
* 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.
Characteristics here
 
|-
== HTTPS Characteristics ==
| '''URI''' ||  
 
Definition here
* 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
Characteristics here
* 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.<ref>https://www.ibm.com/support/knowledgecenter/en/SSGMCP_5.1.0/com.ibm.cics.ts.internet.doc/topics/dfhtl29.html</ref>
 
== HTML Definition ==
 
HyperText Markup Language, commonly referred to as HTML, is the standard markup language used to create web pages<ref>https://en.wikipedia.org/wiki/HTML</ref>. Please see our wiki page on [[HTML]] for a deeper discussion of HTML.
 
== HTML Characteristics ==
 
* 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 <ref>https://en.wikipedia.org/wiki/Markup_language</ref>
* HTML markup consists of several key components, including those called tags (and their attributes), character-based data types, character references and entity references.<ref>https://en.wikipedia.org/wiki/HTML#Markup</ref>
* HTML tags most commonly come in pairs although some represent empty elements and so are unpaired. <ref>https://en.wikipedia.org/wiki/HTML#Markup</ref>
* 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).<ref>https://en.wikipedia.org/wiki/HTML#Markup</ref>
fin
 
== URL Definition ==
 
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).<ref>https://en.wikipedia.org/wiki/URL</ref>
* Please [http://www.ietf.org/rfc/rfc2396.txt?cm_mc_uid=07864784650914905194154&cm_mc_sid_50200000=1490519415 click here for the official url specification]
 
== URL Characteristics ==
 
* URL's have different parts. Every URL MUST have:
** scheme, path and host
* URL's have different parts. Every URL MIGHT have:
** user information   
** port
** query
** fragment
 
 
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:
  scheme://host:port/path?query
 
# 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.<ref>https://www.ibm.com/support/knowledgecenter/en/SSGMCP_5.1.0/com.ibm.cics.ts.internet.doc/topics/dfhtl_uricomp.html</ref>
 
 
 
 
Please [https://en.wikipedia.org/wiki/Uniform_Resource_Identifier#Examples 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.
 
== XML Definition ==
 
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.<ref>https://en.wikipedia.org/wiki/XML</ref>
 
* Please [https://msdn.microsoft.com/en-us/library/ms762271(v=vs.85).aspx click here for an example XML file].
* Please [https://www.w3.org/TR/xml/ click here for the official W3C specification] for XML.
fin
== XML Characteristics ==
 
* XML consists mostly of markup and content<ref>https://en.wikipedia.org/wiki/XML</ref>
** Generally, strings that constitute markup either begin with the character < and end with a > <ref>https://en.wikipedia.org/wiki/XML</ref>
** The text between the markup is the content<ref>https://en.wikipedia.org/wiki/XML</ref>
* 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<ref>https://en.wikipedia.org/wiki/XML</ref>
* XML may have a declaration that describes some information about themselves.<ref>https://en.wikipedia.org/wiki/XML</ref>
fin
== XSLT Definition ==
 
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. <ref>https://en.wikipedia.org/wiki/XSLT</ref>
 
* For an interesting discussion the relative pros and cons of xslt, [http://stackoverflow.com/questions/78716/is-xslt-worth-it please click here].
* Please [https://www.youtube.com/watch?v=BujLy71JY1k&t=157s watch this video for an example] XSLT in action! 
fin
== XSLT Characteristics ==
 
* Please [https://en.wikipedia.org/wiki/XSLT_elements click here for a list of elements in XLST]
* XSLT changes XML documents in other documents
 
== CSS Definition ==
 
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. <ref>https://en.wikipedia.org/wiki/Cascading_Style_Sheets</ref>
 
== CSS Characteristics ==
 
* CSS has selectors. Selectors declare which part of the markup a style applies to by matching tags and attributes in the markup itself.<ref>https://en.wikipedia.org/wiki/Cascading_Style_Sheets</ref>
* 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.<ref>https://en.wikipedia.org/wiki/Cascading_Style_Sheets</ref>
* 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.<ref>https://en.wikipedia.org/wiki/Cascading_Style_Sheets</ref>
* 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<ref>https://en.wikipedia.org/wiki/Cascading_Style_Sheets</ref>
 
fin


== Do you understand this? ==
== Do you understand this? ==


You must simply memorize these. There isn't anything fancy about this. If you need help memorizing, please use a [https://www.mindtools.com/memory.html mnemonic strategy].


* Please print (and fill out with a pen or pencil) [[Media:Youmustmemorizethedefinitionandcharacteristicsofthesecommonwebprotocols.pdf |this PDF file]].
* Please [https://docs.google.com/document/d/1xjT0idqhVdhha7H0MzE8iSWNS_4bnupKXKiWe-bvPOg/edit make a copy of this document and fill it out].


== Standards ==
== Standards ==

Latest revision as of 08:26, 17 October 2022

Web Science[1]


Characteristics of the web[edit]

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:

HTTP Definition[edit]

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.[2].

fin

HTTP Characteristics[edit]

  • HTTP is an application-layer protocol
  • HTTP functions as a request–response protocol [4]
  • HTTP is the protocol to exchange or transfer hypertext [5]
  • HTTP is stateless - Each transaction between the client and server is independent and no state is set based on a previous transaction or condition.[6]
  • HTTP Uses requests from the client to the server and responses from the server to the client for sending and receiving data. [7]
  • HTTP utilizes headers at the start of each message.[8]

fin

HTTPS Definition[edit]

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.[9]

Transport Layer Security (TLS) is a cryptographic protocols that provide communications security over a computer network.[10].

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 Characteristics[edit]

  • 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.[11]

HTML Definition[edit]

HyperText Markup Language, commonly referred to as HTML, is the standard markup language used to create web pages[12]. Please see our wiki page on HTML for a deeper discussion of HTML.

HTML Characteristics[edit]

  • 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 [13]
  • HTML markup consists of several key components, including those called tags (and their attributes), character-based data types, character references and entity references.[14]
  • HTML tags most commonly come in pairs although some represent empty elements and so are unpaired. [15]
  • 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).[16]

fin

URL Definition[edit]

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).[17]

URL Characteristics[edit]

  • URL's have different parts. Every URL MUST have:
    • scheme, path and host
  • URL's have different parts. Every URL MIGHT have:
    • user information
    • port
    • query
    • fragment


A URL for HTTP (or HTTPS) is normally made up of three or four components:

  1. 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).
  2. 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.
  3. 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.
  4. 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:

scheme://host:port/path?query
  1. The scheme is followed by a colon and two forward slashes.
  2. If a port number is specified, that number follows the host name, separated by a colon.
  3. The path name begins with a single forward slash.
  4. If a query string is specified, it is preceded by a question mark.[18]



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.

XML Definition[edit]

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.[19]

fin

XML Characteristics[edit]

  • XML consists mostly of markup and content[20]
    • Generally, strings that constitute markup either begin with the character < and end with a > [21]
    • The text between the markup is the content[22]
  • 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[23]
  • XML may have a declaration that describes some information about themselves.[24]

fin

XSLT Definition[edit]

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. [25]

fin

XSLT Characteristics[edit]

CSS Definition[edit]

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. [26]

CSS Characteristics[edit]

  • CSS has selectors. Selectors declare which part of the markup a style applies to by matching tags and attributes in the markup itself.[27]
  • 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.[28]
  • 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.[29]
  • 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[30]

fin

Do you understand this?[edit]

You must simply memorize these. There isn't anything fancy about this. If you need help memorizing, please use a mnemonic strategy.

Standards[edit]

These standards are used from the IB Computer Science Subject Guide[31]

  • Identify the characteristics of the following: HTTP, HTTPS, HTML, URL, XML, XSLT, CSS.

References[edit]

  1. http://www.flaticon.com/
  2. https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol
  3. https://www.lsr.com/white-papers/the-power-of-802-15-4-and-ethernet
  4. https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol
  5. https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol
  6. http://www.comptechdoc.org/independent/web/http/reference/httprfccopy.html
  7. http://www.comptechdoc.org/independent/web/http/reference/
  8. http://www.comptechdoc.org/independent/web/http/reference/
  9. https://en.wikipedia.org/wiki/HTTPS
  10. https://en.wikipedia.org/wiki/Transport_Layer_Security
  11. https://www.ibm.com/support/knowledgecenter/en/SSGMCP_5.1.0/com.ibm.cics.ts.internet.doc/topics/dfhtl29.html
  12. https://en.wikipedia.org/wiki/HTML
  13. https://en.wikipedia.org/wiki/Markup_language
  14. https://en.wikipedia.org/wiki/HTML#Markup
  15. https://en.wikipedia.org/wiki/HTML#Markup
  16. https://en.wikipedia.org/wiki/HTML#Markup
  17. https://en.wikipedia.org/wiki/URL
  18. https://www.ibm.com/support/knowledgecenter/en/SSGMCP_5.1.0/com.ibm.cics.ts.internet.doc/topics/dfhtl_uricomp.html
  19. https://en.wikipedia.org/wiki/XML
  20. https://en.wikipedia.org/wiki/XML
  21. https://en.wikipedia.org/wiki/XML
  22. https://en.wikipedia.org/wiki/XML
  23. https://en.wikipedia.org/wiki/XML
  24. https://en.wikipedia.org/wiki/XML
  25. https://en.wikipedia.org/wiki/XSLT
  26. https://en.wikipedia.org/wiki/Cascading_Style_Sheets
  27. https://en.wikipedia.org/wiki/Cascading_Style_Sheets
  28. https://en.wikipedia.org/wiki/Cascading_Style_Sheets
  29. https://en.wikipedia.org/wiki/Cascading_Style_Sheets
  30. https://en.wikipedia.org/wiki/Cascading_Style_Sheets
  31. IB Diploma Programme Computer science guide (first examinations 2014). Cardiff, Wales, United Kingdom: International Baccalaureate Organization. January 2012.