<?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: Kevin Comba</title>
    <description>The latest articles on DEV Community by Kevin Comba (@kelchospense).</description>
    <link>https://dev.to/kelchospense</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%2F903957%2F91bec87e-d3a4-4163-84d8-d343dbcf82cb.png</url>
      <title>DEV Community: Kevin Comba</title>
      <link>https://dev.to/kelchospense</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kelchospense"/>
    <language>en</language>
    <item>
      <title>😎Host your express API in Heroku in a second🔥👇👇</title>
      <dc:creator>Kevin Comba</dc:creator>
      <pubDate>Thu, 25 Aug 2022 11:46:11 +0000</pubDate>
      <link>https://dev.to/kelchospense/host-your-express-api-in-heroku-in-a-second-3mk1</link>
      <guid>https://dev.to/kelchospense/host-your-express-api-in-heroku-in-a-second-3mk1</guid>
      <description>&lt;p&gt;step 0&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BLqPMFVS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7lgolgb3zve98e1up2ya.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BLqPMFVS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7lgolgb3zve98e1up2ya.jpg" alt="Image description" width="800" height="800"&gt;&lt;/a&gt;&lt;br&gt;
step 1&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4PCfkzAE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gba3fdw2w0we7j54qd2d.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4PCfkzAE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gba3fdw2w0we7j54qd2d.jpg" alt="Image description" width="800" height="745"&gt;&lt;/a&gt;&lt;br&gt;
step 2&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--u4Y-NrLv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/652u4y4c77znc6l2kr79.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--u4Y-NrLv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/652u4y4c77znc6l2kr79.jpg" alt="Image description" width="800" height="732"&gt;&lt;/a&gt;&lt;br&gt;
step 3&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aobyVEk3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9yyza6s2r7lkbaeh8z9q.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aobyVEk3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9yyza6s2r7lkbaeh8z9q.jpg" alt="Image description" width="800" height="738"&gt;&lt;/a&gt;&lt;br&gt;
step 4&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--E0J1DYBA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qrr2qs7jxfiij1edyy3z.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--E0J1DYBA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qrr2qs7jxfiij1edyy3z.jpg" alt="Image description" width="800" height="748"&gt;&lt;/a&gt;&lt;br&gt;
step 5&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SRhLzQTM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5m4cfbh5rs1owtsy7r1x.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRhLzQTM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5m4cfbh5rs1owtsy7r1x.jpg" alt="Image description" width="800" height="741"&gt;&lt;/a&gt;&lt;br&gt;
step 6&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MSxUfFkR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p6gfaq2dywdlv95sctab.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MSxUfFkR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p6gfaq2dywdlv95sctab.jpg" alt="Image description" width="800" height="739"&gt;&lt;/a&gt;&lt;br&gt;
step 7&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jYYE6TOZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hml719nwx8xt9wz5prqn.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jYYE6TOZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hml719nwx8xt9wz5prqn.jpg" alt="Image description" width="800" height="737"&gt;&lt;/a&gt;&lt;br&gt;
step 8&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xTepHFw9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jahrei4i0pavzlknjglt.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xTepHFw9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jahrei4i0pavzlknjglt.jpg" alt="Image description" width="800" height="746"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>🔥JSON Web Token (JWT) is quite popular and used for Authentication🔥</title>
      <dc:creator>Kevin Comba</dc:creator>
      <pubDate>Wed, 10 Aug 2022 09:04:08 +0000</pubDate>
      <link>https://dev.to/kelchospense/json-web-token-jwt-is-quite-popular-and-used-for-authentication-1k0f</link>
      <guid>https://dev.to/kelchospense/json-web-token-jwt-is-quite-popular-and-used-for-authentication-1k0f</guid>
      <description>&lt;p&gt;✍🏻 It’s a token-based standard that allows us to securely transfer information between two parties without storing anything in a database.&lt;/p&gt;

&lt;p&gt;JWT token consists of three parts:&lt;br&gt;
✔️ Header&lt;br&gt;
✔️ Payload&lt;br&gt;
✔️ Signature&lt;br&gt;
Each one being BaseURL64 encoded to form the token.&lt;/p&gt;

&lt;p&gt;𝐉𝐖𝐓 𝐚𝐮𝐭𝐡𝐞𝐧𝐭𝐢𝐜𝐚𝐭𝐢𝐨𝐧 𝐟𝐨𝐥𝐥𝐨𝐰𝐬 𝐚 𝐬𝐢𝐦𝐩𝐥𝐞 4 𝐬𝐭𝐞𝐩 𝐩𝐫𝐨𝐜𝐞𝐬𝐬&lt;/p&gt;

&lt;p&gt;1) Client (Browser) 👉 sends post request with credentials to auth server to authenticate themselves&lt;/p&gt;

&lt;p&gt;2) Auth Server 👉 authenticates user credential and generates a JWT. Server does not store anything and sends the token to the browser to save. It allows users to authenticate without their credentials in the future. It’s best advised to store the token in an http only cookie.&lt;/p&gt;

&lt;p&gt;3) Thereafter 👉 for every request the client sends the JWT in the authorization header. Validation happens using token introspection with the auth server.&lt;/p&gt;

&lt;p&gt;4) Once validated, resource server 👉 sends the necessary data to the client.&lt;/p&gt;

&lt;p&gt;🚨 This covers a basic understanding of how JWT works. There’s much more to it.&lt;/p&gt;

&lt;p&gt;✅ Reading it from jwt[.]io would provide better insights.&lt;/p&gt;

&lt;p&gt;Keep growing. Keep learning. 💪&lt;/p&gt;

</description>
      <category>jwt</category>
      <category>node</category>
      <category>javascript</category>
    </item>
    <item>
      <title>⭐ Client Side Rendering vs Server Side Rendering⭐</title>
      <dc:creator>Kevin Comba</dc:creator>
      <pubDate>Sat, 06 Aug 2022 09:12:50 +0000</pubDate>
      <link>https://dev.to/kelchospense/client-side-rendering-vs-server-side-rendering-3ca6</link>
      <guid>https://dev.to/kelchospense/client-side-rendering-vs-server-side-rendering-3ca6</guid>
      <description>&lt;p&gt;An important difference web developers must know 🔥&lt;br&gt;
⭐ Client Side Rendering⭐&lt;br&gt;
Is about rendering content in the browser mostly using JavaScript. Instead of getting all the content from the HTML document itself, a JS file renders the most of the site.&lt;/p&gt;

&lt;p&gt;🟢 Fast website rendering after the initial load.&lt;br&gt;
🟢 Great for web applications.&lt;br&gt;
🔴 Initial load takes more time&lt;br&gt;
⭐ In Server Side Rendering⭐&lt;br&gt;
User makes a request to the webpage, the server prepares the HTML page by fetching the required data from the database and sends to the user’s machine over the internet while the JavaScript page is fetched to control interactivity.&lt;/p&gt;

&lt;p&gt;🟢 The initial page load is faster.&lt;br&gt;
🟢 Great for static sites.&lt;br&gt;
🟢 Helps in SEO by allowing Search Engines to crawl the site&lt;br&gt;
🔴 Frequent server requests take time for subsequent pages&lt;/p&gt;

&lt;p&gt;Keep growing. Keep learning💪&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>frontend</category>
      <category>backend</category>
    </item>
    <item>
      <title>🔥 If you are a developer, you must know how CORS works 🔥</title>
      <dc:creator>Kevin Comba</dc:creator>
      <pubDate>Fri, 05 Aug 2022 17:25:00 +0000</pubDate>
      <link>https://dev.to/kelchospense/if-you-are-a-developer-you-must-know-how-cors-works-3fmo</link>
      <guid>https://dev.to/kelchospense/if-you-are-a-developer-you-must-know-how-cors-works-3fmo</guid>
      <description>&lt;p&gt;Here’s a high-level flow on how browsers initiate that extra “preflight” request to determine whether they have permission to perform cross-origin requests.&lt;/p&gt;

&lt;p&gt;What is CORS anyway? CORS stands for Cross-Origin Resource Sharing, and it’s a protocol that allows servers to receive requests from different domains.&lt;/p&gt;

&lt;p&gt;Developers often make external API requests to fetch data from external servers. Sometimes these servers could be from different domains too.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
👉 My app in kelcho.com making a GET request to kelcho.com is a same-origin request&lt;br&gt;
👉 My app in kelcho.com making a GET request to google.com is a cross-origin request&lt;/p&gt;

&lt;p&gt;But these cross-domain requests are restricted by the browser ❌&lt;/p&gt;

&lt;p&gt;Once developers have configured CORS on the server to accept requests from other domains the browser will kick in a preflight check ✅&lt;/p&gt;

&lt;p&gt;It is to verify whether resource sharing is allowed on the destination server. The preflight request uses the HTTP method OPTIONS.&lt;/p&gt;

&lt;p&gt;I’ll post a detailed visual guide on how it works under the hood soon✌️&lt;/p&gt;

&lt;p&gt;Keep growing. Keep learning💪&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>cors</category>
    </item>
  </channel>
</rss>
