 
    
<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>http Archives - Complete, Concrete, Concise</title>
	<atom:link href="https://complete-concrete-concise.com/tag/http/feed/" rel="self" type="application/rss+xml" />
	<link>https://complete-concrete-concise.com/tag/http/</link>
	<description>Practical Information Without The Bloat</description>
	<lastBuildDate>Sun, 12 Mar 2023 13:23:10 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>
	<item>
		<title>Understanding How the World Wide Web (WWW) Works</title>
		<link>https://complete-concrete-concise.com/tutorials/webdev/introduction/understanding-how-the-world-wide-web-www-works/</link>
		
		<dc:creator><![CDATA[richardsplanet]]></dc:creator>
		<pubDate>Tue, 06 Mar 2018 14:55:53 +0000</pubDate>
				<category><![CDATA[Introduction]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[understanding]]></category>
		<category><![CDATA[uri]]></category>
		<category><![CDATA[url]]></category>
		<category><![CDATA[world wide web]]></category>
		<category><![CDATA[www]]></category>
		<guid isPermaLink="false">https://complete-concrete-concise.com/?p=3411</guid>

					<description><![CDATA[<p>A high level overview of the technologies that are the foundation of how the World Wide Web works.</p>
<p>The post <a href="https://complete-concrete-concise.com/tutorials/webdev/introduction/understanding-how-the-world-wide-web-www-works/">Understanding How the World Wide Web (WWW) Works</a> appeared first on <a href="https://complete-concrete-concise.com">Complete, Concrete, Concise</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="preamble">The Internet and the World Wide Web are not the same things, even though people often use these terms interchangeably. The Web is a collection of webpages, videos, pictures, and applications that are all connected together, while the Internet is a global network of devices that can send and receive data.</div>
<h2 id="a-little-background">A Little Background</h2>
<p>In the 1980s, Sir Tim Berners-Lee was working at CERNfound it difficult to access documents and information from different computers:</p>
<blockquote><p>I found it frustrating that in those days, there was different information on different computers, but you had to log on to different computers to get at it. Also, sometimes you had to learn a different program on each computer. So finding out how things worked was really difficult.<a id="fnref1" class="footnote-ref" href="#fn1"><sup>1</sup></a></p></blockquote>
<p>In 1989, he proposed a <strong>hypertext</strong><a id="fnref2" class="footnote-ref" href="#fn2"><sup>2</sup></a> based system for accessing, sharing, and linking documents. At that time, the standard practice for document organization was a centralized repository. Sir Tim Berners-Lee proposed to do away with that:</p>
<blockquote><p>[T]he hope would be to allow a pool of information to develop which could grow and evolve with the organisation and the projects it describes. For this to be possible, the method of storage must not place its own restraints on the information. This is why a “web” of notes with links (like references) between them is far more useful than a fixed hierarchical system.<a id="fnref3" class="footnote-ref" href="#fn3"><sup>3</sup></a></p></blockquote>
<p>In 1990, he wrote the first <em>web browser</em> and <em>web server</em> and developed three fundamental technologies that form the foundation of the <strong>World Wide Web</strong>:</p>
<ul>
<li><strong>Hypertext Markup Language</strong> (HTML) &#8211; this is used to create webpages.</li>
<li><strong>Uniform Resource Locator</strong> (URL) &#8211; a string of characters used to identify a resource and its location.<a id="fnref4" class="footnote-ref" href="#fn4"><sup>4</sup></a></li>
<li><strong>Hypertext Transfer Protocol</strong> (HTTP) &#8211; the protocol by which <strong>HTML</strong> resources are accessed on the <strong>Internet</strong>.</li>
</ul>
<p>While Sir Tim Berners-Lee’s primary concern was for a web of interconnected <strong>hypertext</strong> documents, he realized that many other resources could be interlinked. His implementation was so successful that the <strong>World Wide Web</strong> includes:</p>
<ol type="1">
<li>Documents &#8211; like this webpage</li>
<li>Images &#8211; Flickr allows people to share and access photos</li>
<li>Video &#8211; YouTube allows people to share and access videos</li>
<li>Audio &#8211; Spotify allows people to listen to music</li>
<li>Applications &#8211; Google Docs is an online word processor</li>
</ol>
<p><a href="https://complete-concrete-concise.com/wp-content/uploads/2018/03/understanding-how-the-world-wide-web-work-1-compressor.jpg"><img fetchpriority="high" decoding="async" class="aligncenter size-full wp-image-3422" src="https://complete-concrete-concise.com/wp-content/uploads/2018/03/understanding-how-the-world-wide-web-work-1-compressor.jpg" alt="" width="600" height="424" /></a><br />
The <a href="http://info.cern.ch/hypertext/WWW/TheProject.html">first website</a> to go live was at CERN in 1991.<br />
By the end of 1991, there were a total of three websites worldwide:</p>
<ol type="1">
<li><a href="http://info.cern.ch/hypertext/WWW/TheProject.html">CERN</a></li>
<li><a href="http://vlib.org/">The World Wide Web Virtual Library</a> (also at CERN)</li>
<li><a href="https://www6.slac.stanford.edu/">Stanford Linear Accelerator Center</a> &#8211; the first North American website.</li>
</ol>
<p>By the end of 1992, there were a total of 10 websites worldwide.<br />
As of early 2023, there are almost 2 billion websites.</p>
<h2 id="the-world-wide-web">The World Wide Web</h2>
<p>The <strong>Internet</strong> is the global network of interconnected devices transferring datagrams<a id="fnref5" class="footnote-ref" href="#fn5"><sup>5</sup></a> using the <strong>Internet Protocol</strong> (IP). Most datagrams are transported using the <strong>Transmission Control Protocol</strong> (TCP) protocol.<a id="fnref6" class="footnote-ref" href="#fn6"><sup>6</sup></a><br />
The <strong>World Wide Web</strong> (WWW) is a service that runs on the <strong>Internet</strong>. It is the collection of documents<a id="fnref7" class="footnote-ref" href="#fn7"><sup>7</sup></a> written in <strong>Hypertext Markup Language</strong> (HTML)<a id="fnref8" class="footnote-ref" href="#fn8"><sup>8</sup></a>, identified by a <strong>Uniform Resource Locator</strong> (URL), and transferred using the <strong>Hypertext Transfer Protocol</strong> (HTTP). All of this is done on the <strong>Internet</strong> using <strong>TCP</strong> and <strong>IP</strong>.<br />
<strong>IP</strong> identifies devices on the Internet, <strong>TCP</strong> transports datagrams between them, and <strong>HTTP<a id="fnref9" class="footnote-ref" href="#fn9"><sup>9</sup></a></strong> is used to access content. <strong>TCP</strong> is like a delivery company that transports goods to the correct address, while <strong>HTTP</strong> packages resources so that they can be transported by <strong>TCP</strong> from one device to another. There are other application layer protocols like <strong>FTP</strong>,<a id="fnref10" class="footnote-ref" href="#fn10"><sup>10</sup></a> <strong>SSH</strong>,<a id="fnref11" class="footnote-ref" href="#fn11"><sup>11</sup></a> <strong>SMTP</strong>,<a id="fnref12" class="footnote-ref" href="#fn12"><sup>12</sup></a> <strong>POP3</strong>,<a id="fnref13" class="footnote-ref" href="#fn13"><sup>13</sup></a> that are used on the Internet, but <strong>HTTP</strong> is the most commonly used.</p>
<p><strong>HTTP</strong> is not the only <em>application layer</em> protocol in use on the <strong>Internet</strong>, but it is the most visible. Most people don’t notice (or even know about) other <em>application layer</em> protocols such as: <strong>FTP</strong>,<a id="fnref10" class="footnote-ref" href="#fn10"><sup>10</sup></a> <strong>SSH</strong>,<a id="fnref11" class="footnote-ref" href="#fn11"><sup>11</sup></a> <strong>SMTP</strong>,<a id="fnref12" class="footnote-ref" href="#fn12"><sup>12</sup></a> <strong>POP3</strong>,<a id="fnref13" class="footnote-ref" href="#fn13"><sup>13</sup></a> etc.</p>
<h2 id="hypertext-markup-language-html">Hypertext Markup Language (HTML)</h2>
<p><strong>HTML</strong> is used to write webpages and web applications. It is often combined with <strong>Cascading Style Sheets</strong> (CSS) and <strong>JavaScript</strong> (JS).<a id="fnref14" class="footnote-ref" href="#fn14"><sup>14</sup></a><br />
<strong>HTML</strong> documents are sent by <strong>web servers</strong> and <em>rendered</em> by <strong>web clients</strong> (web browsers) to display the contents of a webpage to a user.<br />
Here&#8217;s an example of a simple webpage:</p>
<div id="cb1" class="sourceCode">
<pre class="sourceCode html"><code class="sourceCode html"><a id="cb1-1" class="sourceLine" data-line-number="1"></a><span class="dt">&lt;!DOCTYPE </span>html<span class="dt">&gt;</span>
<a id="cb1-2" class="sourceLine" data-line-number="2"></a><span class="kw">&lt;html&gt;</span>
<a id="cb1-3" class="sourceLine" data-line-number="3"></a>  <span class="kw">&lt;head&gt;</span>
<a id="cb1-4" class="sourceLine" data-line-number="4"></a>    <span class="kw">&lt;title&gt;</span>A Simple Webpage<span class="kw">&lt;/title&gt;</span>
<a id="cb1-5" class="sourceLine" data-line-number="5"></a>  <span class="kw">&lt;/head&gt;</span>
<a id="cb1-6" class="sourceLine" data-line-number="6"></a>  <span class="kw">&lt;body&gt;</span>
<a id="cb1-7" class="sourceLine" data-line-number="7"></a>    <span class="kw">&lt;h1&gt;</span>This is important!<span class="kw">&lt;/h1&gt;</span>
<a id="cb1-8" class="sourceLine" data-line-number="8"></a>    <span class="kw">&lt;p&gt;</span>Check out this site:<span class="kw">&lt;/p&gt;</span>
<a id="cb1-9" class="sourceLine" data-line-number="9"></a>    <span class="kw">&lt;a</span><span class="ot"> href=</span><span class="st">"//example.com"</span><span class="kw">&gt;</span>Example<span class="kw">&lt;/a&gt;</span>
<a id="cb1-10" class="sourceLine" data-line-number="10"></a>  <span class="kw">&lt;/body&gt;</span>
<a id="cb1-11" class="sourceLine" data-line-number="11"></a><span class="kw">&lt;/html&gt;</span></code></pre>
</div>
<p>All <strong>HTML</strong> documents are composed of <strong>HTML</strong> tags which (usually) come in pairs. There is an opening tag, like <span class="kbd">&lt;html&gt;</span> and its corresponding closing tag <span class="kbd">&lt;/html&gt;</span>. These tags <strong>markup</strong> the document.<br />
<strong>HTML</strong> tags perform three different functions:</p>
<ul>
<li><strong>Structural Markup</strong> tags are used to indicate the structure and purpose of the text in the document. We can see that this page is divided into two parts: a <span class="kbd">&lt;head&gt;</span> that contains <em>metainformation</em><a id="fnref15" class="footnote-ref" href="#fn15"><sup>15</sup></a> about the page and a <span class="kbd">&lt;body&gt;</span> that contains the content displayed to the user. In the body, we see there is a <em>heading</em> (<span class="kbd">&lt;h1&gt;</span>) and a <em>paragraph</em> (<span class="kbd">&lt;p&gt;</span>).</li>
<li><strong>Presentational Markup</strong> is used to indicate how text should be displayed to the user &#8211; for example, <strong>bold</strong>, <em>italic</em>, <del>strikethrough</del>, etc. There is no presentation markup in this simple webpage. <strong>CSS</strong> is recommended for presentation markup.</li>
<li><strong>Hypertext Markup</strong> is used to create links inside the document to other documents or resources. In this page, there is a single hypertext link &#8211; the anchor tag <span class="kbd">&lt;a&gt;</span></li>
</ul>
<p>In general, <strong>HTML</strong> documents are plain text documents with special annotations (<strong>HTML</strong> tags) to describe the structure of the document. <strong>Web clients</strong> (web browsers) display the content to the user.</p>
<h2 id="uniform-resource-locator-url">Uniform Resource Locator (URL)</h2>
<p>A <strong>Uniform Resource Locator</strong> (URL) is used to access resources on the <strong>WWW</strong>. It has the following format:</p>
<pre class="url"><code>&lt;access protocol&gt;://&lt;host&gt;/&lt;location &amp; resource name&gt;</code></pre>
<ul>
<li><strong>access protocol</strong> specifies how the resource is to be accessed. For the <strong>WWW</strong> it is either <strong>HTTP</strong> or <strong>HTTPS</strong><a id="fnref16" class="footnote-ref" href="#fn16"><sup>16</sup></a>. There are many different access protocols for the <strong>Internet</strong>.<a id="fnref17" class="footnote-ref" href="#fn17"><sup>17</sup></a> Technically, you should always include the access protocol when you type the <strong>URL</strong> for a website. However, browsers (being helpful) will automatically prefix the protocol for you.</li>
<li><strong>host</strong> specifies which device on the <strong>Internet</strong> contains the resource. It can be an <strong>IP</strong> address (like <span class="kbd">127.0.0.1</span>) or, more commonly, a human readable string (like <span class="kbd">www.complete-concrete-concise.com</span>) which is translated by a <strong>Domain Name System</strong> (DNS) into an <strong>IP</strong> address.</li>
<li><strong>location &amp; resource name</strong> specifies the name of the resource and where it is located. If no resource name is given, <strong>web servers</strong> return <span class="kbd">index.html</span> by default.</li>
</ul>
<p>Let’s consider the following <strong>URL</strong>:</p>
<pre class="url"><code>https://complete-concrete-concise.com/sample/helloworld.html</code></pre>
<ul>
<li>The <strong>access protocol</strong> is <strong>https</strong>.</li>
<li>The <strong>host</strong> is <strong>complete-concrete-concise.com</strong>.</li>
<li>The <strong>location &amp; resource</strong> is <strong>/sample/helloworld.html</strong>.</li>
</ul>
<h2 id="hypertext-transfer-protocol-http">Hypertext Transfer Protocol (HTTP)</h2>
<p><strong>HTTP</strong> responses indicate the status of a request, with two common responses being 200 (OK) for a successful request and 404 (NOT FOUND) for when the requested resource cannot be found.</p>
<p><strong>HTTP</strong> is a <strong>request-response</strong> protocol for data transfer on the <strong>World Wide Web</strong>. It is most commonly used for transferring hypertext documents, like <strong>HTML</strong>, but can be used to transfer other types of content.</p>
<p>It operates on a <strong>client-server</strong> model. The <strong>client</strong> sends a <em>request</em> to a <strong>server</strong>. The <strong>server</strong> then <em>responds</em> to the <strong>client</strong>. For example, a web browser (<strong>client</strong>) that <em>requests</em> a webpage from a website (<strong>server</strong>); the website (<strong>server</strong>) <em>responds</em> by sending the webpage to the web browser (<strong>client</strong>).<a id="fnref18" class="footnote-ref" href="#fn18"><sup>18</sup></a></p>
<p>It is a stateless protocol.<a id="fnref21" class="footnote-ref" href="#fn21"><sup>19</sup></a> This means that each <strong>HTTP request</strong> is independent of all other <strong>HTTP requests</strong>. In other words, the current <em>request</em> knows nothing about previous requests: all information to fulfill the <em>request</em> must be contained in the request itself.</p>
<p>Two common <strong>HTTP</strong> requests are <strong>GET,</strong> used to request a resource from a server, and <strong>POST,</strong> used to send data to a server, such as when submitting a comment or form.</p>
<p><strong>HTTP</strong> responses indicate the status of a request, with two common responses being 200 (OK) for a successful request and 404 (NOT FOUND) for when the requested resource cannot be found.</p>
<h2 id="summary">Summary</h2>
<ol type="1">
<li>The <strong>World Wide Web</strong> is one of many services that run on top of the <strong>Internet</strong>.</li>
<li>The <strong>World Wide Web</strong> is the global collection of resources written using <strong>Hypertext Markup Language</strong> (HTML),<a id="fnref22" class="footnote-ref" href="#fn22"><sup>20</sup></a> identified using a <strong>Uniform Resource Locator</strong> (URL), and transferred using the <strong>Hypertext Transfer Protocol</strong> (HTTP).</li>
<li><strong>Clients</strong> <em>request</em> resources from <strong>servers</strong> using <strong>HTTP</strong>.</li>
<li><strong>Servers</strong> <em>respond</em> to <strong>clients</strong> using <strong>HTTP</strong>.</li>
<li><strong>HTTP</strong> is transported using <strong>TCP</strong> between devices adhering to the <strong>Internet Protocol</strong>.</li>
<li>The flexibility of <strong>HTTP</strong> has contributed to the <strong>World Wide Web</strong> becoming extremely popular because it handles all types of content: from documents to videos, from images to applications.</li>
</ol>
<h2 id="further-reading">Further Reading</h2>
<p>If you are interested in learning more about, check out the following resources:</p>
<h4 id="world-wide-web">World Wide Web</h4>
<ul>
<li><a href="https://www.w3.org/TR/webarch/">Architecture of the World Wide Web</a></li>
</ul>
<h4 id="uniform-resource-locators">Uniform Resource Locators</h4>
<ul>
<li><a href="https://www.w3.org/TR/uri-clarification/">URIs, URLs, and URNs: Clarifications and Recommendations</a></li>
</ul>
<h4 id="hypertext-transfer-protocol">Hypertext Transfer Protocol</h4>
<ul>
<li><a href="https://tools.ietf.org/html/rfc2616">RFC2616</a> &#8211; this is an older document about the <strong>HTTP/1.1</strong> specification. It is a good place to start because it is all in one place.</li>
</ul>
<p>If you want more information, then the following, more recent, documents give more information. They update RFC2616 and break it down into multiple documents, but may be information overload:</p>
<ul>
<li><a href="https://tools.ietf.org/html/rfc7230">RFC 7230</a> Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</li>
<li><a href="https://tools.ietf.org/html/rfc7231">RFC 7231</a> Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</li>
<li><a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a> Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests</li>
<li><a href="https://tools.ietf.org/html/rfc7233">RFC 7233</a> Hypertext Transfer Protocol (HTTP/1.1): Range Requests</li>
<li><a href="https://tools.ietf.org/html/rfc7234">RFC 7234</a> Hypertext Transfer Protocol (HTTP/1.1): Caching</li>
<li><a href="https://tools.ietf.org/html/rfc7235">RFC 7235</a> Hypertext Transfer Protocol (HTTP/1.1): Authentication</li>
</ul>
<section class="footnotes">
<hr />
<ol>
<li id="fn1">From <a href="https://www.w3.org/People/Berners-Lee/Kids.html">Answers For Young People</a><a class="footnote-back" href="#fnref1">↩</a></li>
<li id="fn2">Hypertext is a type of document that contains links (called hyperlinks) to other documents. These links can be clicked to access the other documents.<a class="footnote-back" href="#fnref2">↩</a></li>
<li id="fn3">From <a href="https://www.w3.org/History/1989/proposal.html">Information Management: A Proposal</a><a class="footnote-back" href="#fnref3">↩</a></li>
<li id="fn4">Strictly speaking, this is untrue. Berners-Lee developed the <strong>Uniform Resource Identifier</strong> (URI). There are many kinds of URIs, two common ones are: <strong>Uniform Resource Name</strong> (URN) and <strong>Uniform Resource Locator</strong> (URL). A <strong>URN</strong> identifies a resource. For example, the book <em>A Tale of Two Cities by Charles Dickens</em> is a <strong>URN</strong>. A <strong>URL</strong>, on the other hand, identifies <em>both</em> the resource and its location. For example, the book <em>A Tale of Two Cities by Charles Dickens can be found at the library on the third bookshelf, second shelf from the bottom, fifth book from the left</em> is a <strong>URL</strong> because it specifies both the resource and its location. A <strong>URN</strong> only specifies the name of a resource. Therefore, all <strong>URLs</strong> are <strong>URIs</strong>, but not all <strong>URIs</strong> are <strong>URLs</strong> (because some <strong>URIs</strong> are <strong>URNs</strong>)<a class="footnote-back" href="#fnref4">↩</a></li>
<li id="fn5">A datagram is a packet of information. The IP datagram consists of a header and a payload.<a class="footnote-back" href="#fnref5">↩</a></li>
<li id="fn6">There are other protocols, but <strong>TCP</strong>’s robustness and reliability make it very popular.<a class="footnote-back" href="#fnref6">↩</a></li>
<li id="fn7">Strictly speaking, this is untrue. The official definition of the <strong>World Wide Web</strong> is “<a href="https://www.w3.org/TR/webarch/#intro">an information space in which the items of interest, referred to as resources, are identified by global identifiers called Uniform Resource Identifiers (URI)</a>”. The official definition is vague on what a “resource is”: “<a href="https://www.w3.org/TR/webarch/#id-resources">We do not limit the scope of what might be a resource.</a>”. However, practically speaking, most, if not all, resources are <strong>HTML</strong> webpages or things that act as if they were <strong>HTML</strong> pages.<a class="footnote-back" href="#fnref7">↩</a></li>
<li id="fn8">It does not have to be <strong>HTML</strong>, it could be <strong>XHTML</strong>, <strong>XML</strong>, <strong>SVG</strong>, or any other <strong>HTML-like</strong> markup language.<a class="footnote-back" href="#fnref8">↩</a></li>
<li id="fn9">Technically, <strong>HTTP</strong> is an <em>application layer</em> protocol and interface. This concept doesn’t translate well into the real, physical world we inhabit. If you give someone a drink of water, it has to be in an <em>interface</em> that is useful &#8211; like a glass. The glass is <strong>HTTP</strong>, giving the person the water in the glass is <strong>TCP</strong>, and the receiver is <strong>IP</strong>. Consider shipping marbles to someone: there is an address (<strong>IP</strong>), a courier company does the delivery (<strong>TCP</strong>), but, in order to ship the marbles, you have to adhere to some conventions (protocols) and package the marbles in a box (interface) (<strong>HTTP</strong>).<a class="footnote-back" href="#fnref9">↩</a></li>
<li id="fn10"><strong>File Transfer Protocol</strong> is used for transferring computer files.<a class="footnote-back" href="#fnref10">↩</a></li>
<li id="fn11"><strong>Secure Shell</strong> provides secure access to a computer over a network.<a class="footnote-back" href="#fnref11">↩</a></li>
<li id="fn12"><strong>Simple Mail Transfer Protocol</strong> is used for transmitting emails.<a class="footnote-back" href="#fnref12">↩</a></li>
<li id="fn13"><strong>Post Office Protocol</strong> is used retrieve email from a remote server.<a class="footnote-back" href="#fnref13">↩</a></li>
<li id="fn14">These will all be covered in greater detail in future tutorials.<a class="footnote-back" href="#fnref14">↩</a></li>
<li id="fn15">Metainformation is information about the document, not the information contained in the document. For example, <em>metainformation</em> about a document could include its: length, language, date of publication, date of last revision, author, etc.<a class="footnote-back" href="#fnref15">↩</a></li>
<li id="fn16"><strong>HTTPS</strong> is the secure form of <strong>HTTP</strong>. Using <strong>HTTPS</strong> ensures all communication between the <strong>client</strong> and <strong>server</strong> is encrypted. Surprisingly, <strong>HTTP</strong> and <strong>HTTPS</strong> access can both occur on the same page. This occurs because <strong>HTML</strong> documents often contains <em>hyperlinks</em> to other documents. Those <em>hyperlinks</em> point to documents that are transmitted using either <strong>HTTP</strong> or <strong>HTTPS</strong>.<a class="footnote-back" href="#fnref16">↩</a></li>
<li id="fn17">A list of official and unofficial protocols can be found <a href="https://www.w3.org/Addressing/schemes">here</a><a class="footnote-back" href="#fnref17">↩</a></li>
<li id="fn18">Actually, the server can respond in a number of different ways. For example, if the webpage is not found, it can respond with a 404 error.<a class="footnote-back" href="#fnref18">↩</a></li>
<li id="fn21">This is true of the <strong>HTTP</strong> protocol itself. Servers tend to log all or part of incoming <strong>HTTP</strong> requests. These logs are for maintenance and forensics, not for keeping track of previous <strong>HTTP</strong> requests. Clients also tend to cache components of the <strong>HTTP</strong> response &#8211; for example: cookies, images, HTML pages, and other resources. These topics will be addressed in future tutorials.<a class="footnote-back" href="#fnref21">↩</a></li>
<li id="fn22">This is mostly true, the documents don’t have to be written in <strong>HTML</strong>, but it does have to be something that &#8211; more or less &#8211; behaves as if it were <strong>HTML</strong> &#8211; for example, <strong>xhtml</strong>.<a class="footnote-back" href="#fnref22">↩</a></li>
</ol>
</section>
<p>The post <a href="https://complete-concrete-concise.com/tutorials/webdev/introduction/understanding-how-the-world-wide-web-www-works/">Understanding How the World Wide Web (WWW) Works</a> appeared first on <a href="https://complete-concrete-concise.com">Complete, Concrete, Concise</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>WordPress &#8211; All Your Content has Vanished / Error 404 on All Pages</title>
		<link>https://complete-concrete-concise.com/wordpress-2/wordpress-all-your-content-has-vanished-error-404-on-all-pages/</link>
		
		<dc:creator><![CDATA[richardsplanet]]></dc:creator>
		<pubDate>Wed, 13 Mar 2013 17:51:06 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[404]]></category>
		<category><![CDATA[content]]></category>
		<category><![CDATA[disappeared]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[gone]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[lose]]></category>
		<category><![CDATA[lost]]></category>
		<category><![CDATA[no comments]]></category>
		<category><![CDATA[no content]]></category>
		<category><![CDATA[vanished]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">http://complete-concrete-concise.com/?p=2676</guid>

					<description><![CDATA[<p>These instructions are for WordPress 3.X that is being hosted on a web server that provides access via cPanel version 11.34.1. The instructions may be the same or similar for other version combinations or interfaces other than cPanel, but no guarantees are made. Possible Symptoms You may encounter one or more of the following symptoms: [&#8230;]</p>
<p>The post <a href="https://complete-concrete-concise.com/wordpress-2/wordpress-all-your-content-has-vanished-error-404-on-all-pages/">WordPress &#8211; All Your Content has Vanished / Error 404 on All Pages</a> appeared first on <a href="https://complete-concrete-concise.com">Complete, Concrete, Concise</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="c1">
<p>These instructions are for WordPress 3.X that is being hosted on a web server that provides access via cPanel version 11.34.1.</p>
<p>The instructions may be the same or similar for other version combinations or interfaces other than cPanel, but no guarantees are made.</p>
</div>
<h1>Possible Symptoms</h1>
<p>You may encounter one or more of the following symptoms:</p>
<ul>
<li>All content and comments on your WordPress site have vanished:<br />
<a href="//complete-concrete-concise.com/wp-content/uploads/2013/03/wp-lose-post-1-big.png" target="_blank"><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/03/wp-lose-post-1-thumb.png" alt="" border="0" class="centered"/></a></li>
<li>All content and comments show as having vanished in the dashboard:<br />
<img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/03/wp-lose-post-2.png" alt="" border="0" class="centered"/></p>
<li>Trying to go to a particular page (that you know exists) results in an <u>Http 404 Not Found message</u>:
<p><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2011/12/WordPress-error-404-not-found-login.png" alt="" border="0" class = "centered"/></p>
</li>
<li>You get a database connection error message:<br />
<a href="//complete-concrete-concise.com/wp-content/uploads/2013/03/wp-lose-post-3-big.png" target="_blank"><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/03/wp-lose-post-3-thumb.png" alt="" border="0" class="centered"/></a></li>
</ul>
<h1>Possible Cause &#8211; Corrupted Database</h1>
<p>While it is possible that you have been hacked, it is far more likely that your WordPress database has become corrupted and is no longer able to serve up content.</p>
<p>I am not sure why this happens, but between November-2012 and March-2013 this has happened four times to me.</p>
<h1>Fixing the Problem</h1>
<p>There are two ways to fix this problem: (1) restore the database from a backup copy (preferred), (2) fix the database (only if you don&#8217;t have a backup).</p>
<h2>Checking if the Database is Corrupted</h2>
<p>Before doing anything rash, it is always best to check that a corrupt database is the problem.</p>
<p><strong>1) Log into</strong> your web hosting account (this is not your WordPress powered website). If you web host provides a cPanel interface, it might look something like this:</p>
<p><a href="//complete-concrete-concise.com/wp-content/uploads/2013/03/wp-lose-post-9-big.png" target="_blank"><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/03/wp-lose-post-9-small.png" alt="" border="0" class="centered"/></a></p>
<p><strong>2) Click</strong> on <u>MySQL&reg; Databases</u>:</p>
<p><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/03/wp-lose-post-4.png" alt="" border="0" class="centered"/></p>
<p><strong>3) Locate</strong> the section titled <u>Modify Databases</u>. <strong>Select</strong> your database in the <u>Check DB</u> listbox and <strong>click</strong> on the <u>Check DB</u> button:</p>
<p><a href="//complete-concrete-concise.com/wp-content/uploads/2013/03/wp-lose-post-5-big.png" target="_blank"><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/03/wp-lose-post-5-thumb.png" alt="" border="0" class="centered"/></a></p>
<div class="c1">
<p>How the databases are named, may depend on your service provider. If you have only one website and one database, then finding the correct one is easy.</p>
<p>If you have multiple websites or databases, then you my need to determine which database is which. In my case, I have WordPress and Joomla databases which can be identified by the suffix.</p>
</div>
<p><strong>4) Verify</strong> whether the database has errors or not. If the database comes up without <u>warnings</u> or <u>errors</u> then you have a different problem that will not be fixed by this tutorial. If it does have warnings or errors, then the steps in this tutorial may help:</p>
<p><a href="//complete-concrete-concise.com/wp-content/uploads/2013/03/wp-lose-post-7-big.png" target="_blank"><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/03/wp-lose-post-7-thumb.png" alt="" border="0" class="centered"/></a></p>
<h2>Fixing the Database</h2>
<div class="c1">
<p>This is not the preferred method, but it is likely that most users do not have an up to date backup copy of their database.</p>
<p>If you do have an up to date backup copy of your database, then proceed to the next section.</p>
</div>
<p><strong>1) Click</strong> on <u>MySQL&reg; Databases</u>:</p>
<p><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/03/wp-lose-post-4.png" alt="" border="0" class="centered"/></p>
<p><strong>2) Locate</strong> the section titled <u>Modify Databases</u>. <strong>Select</strong> your database in the <u>Repair  DB</u> listbox and <strong>click</strong> on the <u>Repair DB</u> button:</p>
<p><a href="//complete-concrete-concise.com/wp-content/uploads/2013/03/wp-lose-post-6-big.png" target="_blank"><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/03/wp-lose-post-6-thumb.png" alt="" border="0" class="centered"/></a></p>
<div class="c1">
<p>How the databases are named, may depend on your service provider. If you have only one website and one database, then finding the correct one is easy.</p>
<p>If you have multiple websites or databases, then you my need to determine which database is which. In my case, I have WordPress and Joomla databases which can be identified by the suffix.</p>
</div>
<p>As the database is being repaired, confirm that there are no errors. If there are errors, then run the <u>Repair DB</u> again (I have had to run it up to two times to repair a database):</p>
<p><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/03/wp-lose-post-8.png" alt="" border="0" class="centered"/></p>
<div class="c1">
<p>After this is done, I strongly recommend verifying that all your content is present and intact.</p>
<p>While I have not had a problem with this method, I can see cases where the database is not correctly repaired and content gets lost or is corrupted.</p>
</div>
<h2>Restoring the Database from a Backup</h2>
<div class="c1">
<p>This is the preferred method and presumes you have an up to date backup of your database.</p>
</div>
<p><strong>1) Click</strong> on <u>Backups</u>:</p>
<p><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/03/wp-los-post-10.png" alt="" border="0" class="centered"/></p>
<p><strong>2) Locate</strong> the section called <u>Restore a MySQL Database</u> and <strong>click</strong> on <u>Browse&#8230;</u> and <strong>select</strong> the backup database from your computer. <strong>Click</strong> to upload the database.</p>
<p><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/03/wp-los-post-11.png" alt="" border="0" class="centered"/></p>
<p>During this process, not much may seem to be happening.</p>
<p>The backup database has to be uploaded from your system to your service provider.</p>
<p>Once it is uploaded to the service provider, the existing database is <u>rebuilt</u> from the uploaded one.</p>
<p>The whole process looks something like this:</p>
<p><a href="//complete-concrete-concise.com/wp-content/uploads/2013/03/wp-lose-post-11-big.png" target="_blank"><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/03/wp-lose-post-11-thumb.png" alt="" border="0" class="centered"/></a></p>
<div class="c4">
<p><strong>Note:</strong> Having up to date backups of your website and associated files is essential to being able to correct any problems that occur.</p>
<p>Hopefully, we never have to use it.</p>
</div>

<p>The post <a href="https://complete-concrete-concise.com/wordpress-2/wordpress-all-your-content-has-vanished-error-404-on-all-pages/">WordPress &#8211; All Your Content has Vanished / Error 404 on All Pages</a> appeared first on <a href="https://complete-concrete-concise.com">Complete, Concrete, Concise</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
