<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Cyrill Martin</title>
    <description>The latest articles on DEV Community by Cyrill Martin (@cyrillmartin).</description>
    <link>https://dev.to/cyrillmartin</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F562020%2Ffb252b03-6e90-4dce-b222-312591d8e40a.png</url>
      <title>DEV Community: Cyrill Martin</title>
      <link>https://dev.to/cyrillmartin</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cyrillmartin"/>
    <language>en</language>
    <item>
      <title>HTML, CSS, JavaScript - The Frontend Building Blocks</title>
      <dc:creator>Cyrill Martin</dc:creator>
      <pubDate>Sun, 10 Oct 2021 11:50:19 +0000</pubDate>
      <link>https://dev.to/cyrillmartin/html-css-javascript-the-frontend-building-blocks-1cla</link>
      <guid>https://dev.to/cyrillmartin/html-css-javascript-the-frontend-building-blocks-1cla</guid>
      <description>&lt;h2&gt;
  
  
  HTML
&lt;/h2&gt;

&lt;p&gt;HTML (Hypertext Markup Language) is used to mark up website content so browsers can display it in a human-readable form. Think of a large amount of different text markers and some guidelines with instructions on how to mark up a document. E.g. "The main title of the document should be marked-up yellow. Any subtitles should be marked-up green. Use orange for any sub-subtitles. Use blue to mark up all paragraphs. Inside any titles and paragraphs, use red to mark up the letters which should be &lt;strong&gt;bold&lt;/strong&gt;."&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tTrgBbON--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://kmapper.com/assets/images/tutorials/html-css-javascript/html-css-javascript-1_en.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tTrgBbON--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://kmapper.com/assets/images/tutorials/html-css-javascript/html-css-javascript-1_en.png" alt="Illustration of a document with text being marked-up by text markers"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Instead of text markers, HTML makes use of &lt;strong&gt;HTML tags&lt;/strong&gt;. An HTML tag has a name (instead of a color) to indicate what is being marked up. There’s an &lt;strong&gt;opening tag&lt;/strong&gt; and an &lt;strong&gt;ending tag&lt;/strong&gt; to wrap parts of a text in order to indicate where the markup starts and ends. There's also a guideline on which tags to use for which parts of a text. E.g. the main title of a text should be wrapped in a &lt;strong&gt;h1&lt;/strong&gt; tag (h1 for heading 1). Any subtitles should be wrapped in &lt;strong&gt;h2&lt;/strong&gt; tags. Sub-subtitles go into &lt;strong&gt;h3&lt;/strong&gt; tags, etc. Paragraphs are wrapped inside &lt;strong&gt;p&lt;/strong&gt; tags and letters which should be bold are wrapped inside &lt;strong&gt;b&lt;/strong&gt; tags. There are many more tags available, of course. In the image below you can also see an &lt;strong&gt;i&lt;/strong&gt; tag for italic.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xgEoqv2D--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://kmapper.com/assets/images/tutorials/html-css-javascript/html-css-javascript-2_en.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xgEoqv2D--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://kmapper.com/assets/images/tutorials/html-css-javascript/html-css-javascript-2_en.png" alt="Illustration of a document with text being marked-up by text markers"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When displaying an HTML response, browsers take care of not showing you any of the actual tags but they consider them by the use of default styles. For any text inside an h1 tag, browsers will use a bigger font. For paragraphs (p tag), they will add some spacing before and after the marked up text, etc. However, website creators might not want the browsers to apply their default stylings. Maybe they want to see different spacings between paragraphs and different font sizes for titles.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--g-bT4A5J--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://kmapper.com/assets/images/tutorials/html-css-javascript/html-css-javascript-6_en.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--g-bT4A5J--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://kmapper.com/assets/images/tutorials/html-css-javascript/html-css-javascript-6_en.png" alt="Illustration of a document with text being marked-up by text markers"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Such custom styles are achieved by introducing CSS (cascading style sheets).&lt;/p&gt;

&lt;h2&gt;
  
  
  CSS
&lt;/h2&gt;

&lt;p&gt;Styles declared in CSS are part of the additional resources your browser might request when you access a URL. So, the initial HTML response probably lists at least one CSS resource declaring the custom styles for this current HTML response. In its simplest form, CSS lets you write down the names of the HTML tags and declare custom styles for these, overriding the browser's default ones. There is much, much more to CSS than this simple approach but this should be enough to get the idea. Just keep in mind that any CSS is tightly bound to an HTML response. CSS requested in the context of one response has no effect on the styles of another one, unless they are referencing the exact same CSS.&lt;/p&gt;

&lt;p&gt;While accessing the URL of this tutorial, the HTML response also listed some CSS as one of the additional resources to be requested by your browser. The CSS instructs your browser to override its default styles by applying a different font, using a very dark greyish blue as the text color, using different font sizes for titles, and applying different line heights for titles and paragraphs. Don't worry about the details of CSS syntax. Just be aware that any CSS goes hand in hand with a corresponding HTML document. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5bPTUX59--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://kmapper.com/assets/images/tutorials/html-css-javascript/html-css-javascript-7_en.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5bPTUX59--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://kmapper.com/assets/images/tutorials/html-css-javascript/html-css-javascript-7_en.png" alt="Illustration of a document with text being marked-up by text markers"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On most websites you have some user experience in the form of interactions. Maybe you click a button and some additional elements are loaded to the website. Maybe you get notified that you missed entering some crucial information when trying to check out and order something online. The changes of the website usually happen without a reload of the website or the requests of new HTML and stylings - it's really just parts of the website that change. This website experience you are so used to is achieved through the use of &lt;strong&gt;JavaScript&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  JavaScript
&lt;/h2&gt;

&lt;p&gt;JavaScript is a regular programming language with its own syntax and ways of writing instructions a computer can execute. The common browsers come with a so-called &lt;strong&gt;JavaScript engine&lt;/strong&gt; and &lt;strong&gt;JavaScript runtime&lt;/strong&gt; in order to execute JavaScript code. Remember that JavaScript is part of the additional resources your browser might request when accessing a URL. So, JavaScript developers write code to be executed in your browser. You might have come across the term &lt;strong&gt;client-side&lt;/strong&gt; code or client-side programming, which describes exactly that: providing or writing programming code to be executed in the browsers (the clients) of the website visitors. This is as opposed to &lt;strong&gt;server-side&lt;/strong&gt; code or server-side programming, which is about programming code running in the backend, on the server, of a website.&lt;/p&gt;

&lt;p&gt;The JavaScript runtimes in browsers are powerful tools. They enable JavaScript developers to write instructions for your browser like performing additional requests to some servers, "listening" to click events on the current website and act on them by executing more code, or storing data in and also reading data from your browser. You don't need to understand JavaScript syntax but I hope you now have an idea of client-side JavaScript code and its powerful role in your website experiences.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lHbY4JFw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://kmapper.com/assets/images/tutorials/html-css-javascript/html-css-javascript-9_en.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lHbY4JFw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://kmapper.com/assets/images/tutorials/html-css-javascript/html-css-javascript-9_en.png" alt="Illustration of a document with text being marked-up by text markers"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Accessing a URL from the Browser</title>
      <dc:creator>Cyrill Martin</dc:creator>
      <pubDate>Sat, 09 Oct 2021 10:09:46 +0000</pubDate>
      <link>https://dev.to/cyrillmartin/accessing-a-url-from-the-browser-jj9</link>
      <guid>https://dev.to/cyrillmartin/accessing-a-url-from-the-browser-jj9</guid>
      <description>&lt;p&gt;You enter a URL into the browser's address bar and hit ‘Enter'. The first thing the browser does is following a certain procedure to find the actual Internet Protocol address of the server having access to the content of the website you are trying to visit.&lt;/p&gt;

&lt;p&gt;I'm sure you have already heard of the Internet Protocol address as the &lt;strong&gt;IP address&lt;/strong&gt;. The IP address is just a number uniquely identifying a server connected to the internet, which is just a network of computers using this Internet Protocol to communicate with each other. Don't worry about the Internet Protocol, the details of IP addresses or the procedure of getting these. Getting IP addresses involves your browser communicating with different servers of the Domain Name System a.k.a. &lt;strong&gt;DNS&lt;/strong&gt;. However, this is one of the rabbit holes you don't need to go down for now.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DgMw53qh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://kmapper.com/assets/images/tutorials/accessing-url/accessing-url-1_en.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DgMw53qh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://kmapper.com/assets/images/tutorials/accessing-url/accessing-url-1_en.png" alt="The browser checks if it knows the IP address of a domain name"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IYHOyyYw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://kmapper.com/assets/images/tutorials/accessing-url/accessing-url-2_en.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IYHOyyYw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://kmapper.com/assets/images/tutorials/accessing-url/accessing-url-2_en.png" alt="The browser doesn't know the IP address so it goes along and asks the DNS servers"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sZG9ew4R--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://kmapper.com/assets/images/tutorials/accessing-url/accessing-url-3_en.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sZG9ew4R--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://kmapper.com/assets/images/tutorials/accessing-url/accessing-url-3_en.png" alt="The DNS servers are kind enough to hand over the IP address to the browser"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once your browser knows the IP address of the server it needs to communicate with, it goes along and sends a so-called &lt;strong&gt;request&lt;/strong&gt; to this server. The browser basically asks for an initial &lt;strong&gt;response&lt;/strong&gt; from the server which tells the browser what to display and whether to request additional &lt;strong&gt;resources&lt;/strong&gt; or not.&lt;/p&gt;

&lt;p&gt;The server on the other hand will check what actions have to be taken to answer the browser’s request. Maybe the resource the browser is asking for is already prepared and ready to be served so the server can respond right away. Or the request is handed over to the so-called backend of the website you are trying to visit. No need to go into the details of the backend. Just note that in the backend an endless variety of different processes could take place to create the response to the browser’s request. This might involve checking whether you are authorized to request the resource at all. It might also involve querying one or several databases, making additional requests to other servers, performing some calculations, etc.&lt;/p&gt;

&lt;p&gt;Assuming you are authorized to make the request and you are visiting a regular website with content for humans (as opposed to content for other computer programs), the server will probably answer the request with an &lt;strong&gt;HTML&lt;/strong&gt; (Hypertext Markup Language) response. For now, don't worry about the details of HTML. It's just one way of formatting website content so your browser can easily read it.&lt;/p&gt;

&lt;p&gt;You should know, however, that this initial HTML response usually lists additional URLs with resources your browser will need to request as well in order to correctly display the website you are trying to visit. This includes &lt;strong&gt;images&lt;/strong&gt;, &lt;strong&gt;CSS&lt;/strong&gt; (cascading style sheets) with information about how to style the content of the website (e.g. colors, font sizes, spacings between paragraphs, etc.), and &lt;strong&gt;JavaScript&lt;/strong&gt; code with instructions on how to interact with the website (what should happen when clicking a button, etc.). So, your browser goes through this HTML response, checks for URLs of additional resources listed, and requests all the listed resources in the same manner as it did before. By the way, these additional resources might or might not be located at the same IP address the initial request was made to. As before, for now, don't worry about how CSS and JavaScript works.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vipAvluV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://kmapper.com/assets/images/tutorials/accessing-url/accessing-url-4_en.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vipAvluV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://kmapper.com/assets/images/tutorials/accessing-url/accessing-url-4_en.png" alt="The browser makes a request to the now known IP address"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3tY-XyKv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://kmapper.com/assets/images/tutorials/accessing-url/accessing-url-5_en.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3tY-XyKv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://kmapper.com/assets/images/tutorials/accessing-url/accessing-url-5_en.png" alt="The server checks the browser's request"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--msZi08Iu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://kmapper.com/assets/images/tutorials/accessing-url/accessing-url-6_en.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--msZi08Iu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://kmapper.com/assets/images/tutorials/accessing-url/accessing-url-6_en.png" alt="The server responds with HTML"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;By now, your browser has made all the needed requests and, hopefully, got back responses with all the needed resources to display the website to you. All these resources now live on your computer, making up the &lt;strong&gt;frontend&lt;/strong&gt; of the website which you interact with.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UIHNMesO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://kmapper.com/assets/images/tutorials/accessing-url/accessing-url-7_en.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UIHNMesO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://kmapper.com/assets/images/tutorials/accessing-url/accessing-url-7_en.png" alt="The browser has all responses needed to display the frontend"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
