<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://training-course-material.com/index.php?action=history&amp;feed=atom&amp;title=HTTP</id>
	<title>HTTP - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://training-course-material.com/index.php?action=history&amp;feed=atom&amp;title=HTTP"/>
	<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=HTTP&amp;action=history"/>
	<updated>2026-05-13T09:29:02Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://training-course-material.com/index.php?title=HTTP&amp;diff=23940&amp;oldid=prev</id>
		<title>Cesar Chew at 17:24, 24 November 2014</title>
		<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=HTTP&amp;diff=23940&amp;oldid=prev"/>
		<updated>2014-11-24T17:24:04Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Cat|Nginx|01}}&lt;br /&gt;
{{Cat|Apache}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;slideshow style=&amp;quot;nobleprog&amp;quot; headingmark=&amp;quot;⌘&amp;quot; incmark=&amp;quot;…&amp;quot; scaled=&amp;quot;true&amp;quot; font=&amp;quot;Trebuchet MS&amp;quot; &amp;gt;&lt;br /&gt;
;title: HTTP&lt;br /&gt;
;author: Sam Bashton (NobleProg Ltd)&lt;br /&gt;
&amp;lt;/slideshow&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HTTP ⌘===&lt;br /&gt;
* Stateless, no support for sessions&lt;br /&gt;
* A single TCP connection is created per request&lt;br /&gt;
:* For HTTP 1.0, multiple requests can be &amp;#039;pipelined&amp;#039; in 1.1&lt;br /&gt;
== HTTP Requests ⌘ ==&lt;br /&gt;
=== A very simple HTTP request ⌘===&lt;br /&gt;
 `GET / HTTP/1.0`&lt;br /&gt;
&lt;br /&gt;
=== HTTP Virtual Hosting ⌘===&lt;br /&gt;
* Imagine we wish to host www.example.com and www.example.es on the same server&lt;br /&gt;
* HTTP 1.0 requires that every website has a unique IP&lt;br /&gt;
* This is massively wasteful of IPs, as well as requiring extra administration&lt;br /&gt;
* Solution: HTTP/1.1 and virtual hosts&lt;br /&gt;
=== A simple HTTP 1.1 request ⌘===&lt;br /&gt;
* GET / HTTP/1.1&lt;br /&gt;
* Host: www.example.com&lt;br /&gt;
=== Cookies ⌘===&lt;br /&gt;
* HTTP is stateless&lt;br /&gt;
* How does the web application know who the user is?&lt;br /&gt;
* Cookies&lt;br /&gt;
=== A simple HTTP request with cookies ⌘===&lt;br /&gt;
* GET / HTTP/1.1&lt;br /&gt;
* Host: www.example.es&lt;br /&gt;
* Cookie: Session=ABC12345&lt;br /&gt;
== HTTP Responses ⌘==&lt;br /&gt;
== HTTP Response codes ⌘==&lt;br /&gt;
* Many different HTTP response codes&lt;br /&gt;
* Most common:&lt;br /&gt;
:* 200 OK&lt;br /&gt;
:* 301 Permanent Redirect&lt;br /&gt;
:* 302 Temporary Redirect&lt;br /&gt;
:* 404 Not found&lt;br /&gt;
:* 500 Internal server error&lt;br /&gt;
:* 503 Bad gateway&lt;br /&gt;
=== Example request/response ⌘===&lt;br /&gt;
* GET / HTTP1.0&lt;br /&gt;
* HTTP/1.0 200 OK&lt;br /&gt;
* Content-Type: text/html&lt;br /&gt;
* Cache-Control: private&lt;br /&gt;
* Content-Type: text/html; charset=UTF-8&lt;br /&gt;
* Set-Cookie: SESSION=ABCDEF12345&lt;br /&gt;
=== Try it out ⌘===&lt;br /&gt;
* telnet www.google.com 80&lt;br /&gt;
* GET / HTTP/1.0&lt;br /&gt;
* telnet www.google.com 80&lt;br /&gt;
* GET / HTTP/1.1&lt;br /&gt;
* Host: www.google.es&lt;/div&gt;</summary>
		<author><name>Cesar Chew</name></author>
	</entry>
</feed>