Client Requests in Details
Start course

To really understand how HTML5 works, you need to have some idea of how the internet works. In this first module, web fundamentals, we’ll take a deep dive into the world of http/s, URLs, clients and servers, and security. This first module is mostly theoretical, and there are no practical activities involved with it.  


Client requests are a core part of how HTTP works, and there are sub-components to each of the main parts of the client requests that you do need to know about. HTTP client requests are made up of a method, a URI, the HTTP version and a MIME-like message. There are three common types of method, get, head, and post. Get simply retrieves whatever information the URI identifies, head gets header information about the request URI, and post submits a stream of information to the resource identified by the URI. As you can see, the action the server takes will depend on the URI, so what is a URI? URIs are formatted strings that identify a networked resource. We say resource because HTTP servers can deal with many types of resources not just, for instance, files. 

There are two types of URI. Absolute and relative. Absolute URIs contain all the information to get to the resource, including the scheme, host name and port number. Relative URIs start with the path and the other elements, like the scheme and host name are taken relative to where the page is hosted. It's best practice to use relative URIs in your own pages when you're trying to point users to a resource within your own site because if anything about the scheme or host name changes, it'll still work. Next up, the HTTP version. HTTP version numbers are made up of a major and a minor part and look like this. 

Higher MIME numbers basically means it's a more advanced iteration without changing the way in which the request is dealt with. Major numbers, on the other hand, change when the format of the message is changed. Versions 1.1 and 2.0 are the most common versions at the moment, with 1.1. being the most popular. Version 0.9, the original version of HTTP, interactions can be thought of as simple requests as you like because only the get method is supported and MIME isn't used at all. Version 2.0 is widely supported by most common browsers and a large number of high-traffic websites. Version 3.0 is being developed. The newer versions make data transfer more efficient and secure. 

Last up, we have MIME-like messages. This contains things like modifiers and forms data. Basically, any other data that is sent as part of the request that isn't in one of the other parts. MIME-like messages allow us to send attachments, like audio, video, images and applications as part of the transfer, so it's a powerful and useful part of a client request. That brings us to the end of this video. Client requests are simple in principle. To let the server know what the user's looking for. In practice though, there are a few parts to them, each with their own deeper levels of detail and as a web developer, it's important that you have at least a basic idea how these all work together.


About the Author
Learning Paths

Ed is an Outstanding Trainer in Software Development, with a passion for technology and its uses and holding more than 10 years’ experience.

Previous roles have included being a Delivery Manager, Trainer, ICT teacher, and Head of Department. Ed continues to develop existing and new courses, primarily in web design using: PHP, JavaScript, HTML, CSS, SQL, and OOP (Java), Programming Foundations (Python), and DevOps (Git, CI/CD, etc). Ed describes himself as practically minded, a quick learner, and a problem solver who pays great attention to detail. 

Ed’s specialist area is training in Emerging Technologies, within Web Development. Ed mainly delivers courses in JavaScript covering vanilla JS, ES2015+, TypeScript, Angular, and React (the latter is authored by Ed) and has delivered on behalf of Google for PWAs. Ed has also developed a new suite of PHP courses and has extensive experience with HTML/CSS and MySQL. 

Ed is responsible for delivering QA’s Programming Foundations course using the Eclipse IDE. His skillset extends into the DevOps sphere, where he is able to deliver courses based around Agile/Scrum practices, version control, and CI/CD.

Covered Topics