<?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>Forem: Ahmed Atef</title>
    <description>The latest articles on Forem by Ahmed Atef (@ahmedatefae).</description>
    <link>https://forem.com/ahmedatefae</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%2F463070%2Fe2576413-fb01-4b50-9733-6a5f0e2d4b44.jpg</url>
      <title>Forem: Ahmed Atef</title>
      <link>https://forem.com/ahmedatefae</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/ahmedatefae"/>
    <language>en</language>
    <item>
      <title>Unique resources for web developers (html, CSS, font, color)</title>
      <dc:creator>Ahmed Atef</dc:creator>
      <pubDate>Tue, 29 Sep 2020 13:47:28 +0000</pubDate>
      <link>https://forem.com/ahmedatefae/unique-resources-for-web-developers-html-css-font-color-f5g</link>
      <guid>https://forem.com/ahmedatefae/unique-resources-for-web-developers-html-css-font-color-f5g</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;Before you going on!&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Every day I find new references in various categories and this makes me confused to decide which and when to use&lt;br&gt;
I will now prepare this article to choose the reference most relevant to its genre.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: know that each reference here has a unique aspect of any other reference in the same category, and I will update it when I find any other good reference.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  &lt;code&gt;HTML&lt;/code&gt;
&lt;/h1&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;WEBSITE&lt;/th&gt;
&lt;th&gt;DESCRIPTION&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Flvz2dr9gb5bk443o59u2.png" alt="Alt Text"&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element" rel="noopener noreferrer"&gt;MDN Reference&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;I use this reference all the time for HTML and HTML5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Flb5929lfrveagz0bplmd.png" alt="Alt Text"&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://websitesetup.org/html5-cheat-sheet/" rel="noopener noreferrer"&gt;webSiteSetUp&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;for our hands, very good pdfs and images&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h1&gt;
  
  
  &lt;code&gt;CSS&lt;/code&gt;
&lt;/h1&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;WEBSITE&lt;/th&gt;
&lt;th&gt;DESCRIPTION&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Flvz2dr9gb5bk443o59u2.png" alt="Alt Text"&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Reference" rel="noopener noreferrer"&gt;MDN Reference&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;reference for CSS and CSS300&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F25j6lor8yzxf52sqz0jy.png" alt="Alt Text"&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="http://daneden.github.io/animate.css/" rel="noopener noreferrer"&gt;Animate.css&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;CSS library that lets you understand CSS animation and add it easy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F811sah5yr0x5iupzi1e4.png" alt="Alt Text"&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://caniuse.com/" rel="noopener noreferrer"&gt;can I use&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;support tables for front-end technologies for desktop or mobile browsers.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fmaixoeibygleuo74srqs.png" alt="Alt Text"&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.responsivegridsystem.com/" rel="noopener noreferrer"&gt;Responsive Grid System&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;this website Generate html and CSS codes for a responsive web content.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fiygl2x9k8fdj6m3eztbj.png" alt="Alt Text"&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://bennettfeely.com/clippy/" rel="noopener noreferrer"&gt;clippy&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Tool for making clip-paths&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h1&gt;
  
  
  &lt;code&gt;Fonts&lt;/code&gt;
&lt;/h1&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;WEBSITE&lt;/th&gt;
&lt;th&gt;DESCRIPTION&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F98km103w67l9gponpb4y.png" alt="Alt Text"&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.google.com/fonts" rel="noopener noreferrer"&gt;Google Fonts&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Best resource for free and easy-to-use web fonts. Has an enormous library of fonts.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fr7qwzr3bty0ig7ra3uvo.jpg" alt="Alt Text"&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.fontsquirrel.com/" rel="noopener noreferrer"&gt;Fontsquirrel&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The best, 100% free fonts for commercial use. Another well-known huge font library.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F5xx19wi8ozkpefp2fvv3.png" alt="Alt Text"&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.myfonts.com/" rel="noopener noreferrer"&gt;MyFonts&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Very largest library of premium fonts&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h1&gt;
  
  
  &lt;code&gt;Colors&lt;/code&gt;
&lt;/h1&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;WEBSITE&lt;/th&gt;
&lt;th&gt;DESCRIPTION&lt;/th&gt;
&lt;th&gt;BY&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fe1fmm2prf8ku21ukrxkv.jpg" alt="Alt Text"&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="http://flatuicolors.com/" rel="noopener noreferrer"&gt;Flat UI Colors&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;use it before starting your project for choosing a flat design color.&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F83zfl4dywyg7rceqcipj.png" alt="Alt Text"&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.materialpalette.com/" rel="noopener noreferrer"&gt;Material Palette&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Inspired in material design. Generate your palette and download it and with some icons if you need.&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fqafmw8q2dlcv39qv4o2k.png" alt="Alt Text"&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="http://uigradients.com/" rel="noopener noreferrer"&gt;UI Gradients&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;A collection of gradients for you to choose from and downloadable too.&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ftge1z9l7cyzpr0hgjupc.png" alt="Alt Text"&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://grayscale.design/" rel="noopener noreferrer"&gt;grayscale&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;You can set generate your whole palette so that each color has the same range of color values&lt;/td&gt;
&lt;td&gt;&lt;a href="https://dev.to/kevnk"&gt;Kevin Kirchner&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fi92mjlr98memgpav33f1.png" alt="Alt Text"&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.97palettes.com/" rel="noopener noreferrer"&gt;97palettes&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;collection of  the primary colors for the most used applications&lt;/td&gt;
&lt;td&gt;&lt;a href="https://dev.to/hondohondo"&gt;Ami Amigo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Conclusion:
&lt;/h2&gt;

&lt;p&gt;If you have any good, and unique references feel free to add them to the comments.&lt;/p&gt;

&lt;p&gt;I hope that I have fulfilled the importance of this topic, don't forget to see the following updates for this article.&lt;/p&gt;

&lt;p&gt;If there is any question, please feel free and contact me or leave it in the comments.&lt;/p&gt;

&lt;p&gt;To see similar works and also very important for every developer or cognitive researcher, you can do so by following me on different social networks. &lt;br&gt;
             👉 &lt;a href="https://www.youtube.com/channel/UCLjVsnrcH8J1166ctA0pwEg/" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt;, &lt;a href="https://twitter.com/AhmedAtefWD1" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;, &lt;a href="https://www.linkedin.com/in/ahmed-atef-dev/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; 👈&lt;/p&gt;

</description>
      <category>html</category>
      <category>css</category>
      <category>webdev</category>
      <category>react</category>
    </item>
    <item>
      <title>Web security knowledge you must understand it (Part I: HTTPS, TLS, SSL, CORS, CSP)</title>
      <dc:creator>Ahmed Atef</dc:creator>
      <pubDate>Tue, 22 Sep 2020 06:01:27 +0000</pubDate>
      <link>https://forem.com/ahmedatefae/web-security-knowledge-you-must-understand-it-part-i-https-tls-ssl-cors-csp-298l</link>
      <guid>https://forem.com/ahmedatefae/web-security-knowledge-you-must-understand-it-part-i-https-tls-ssl-cors-csp-298l</guid>
      <description>&lt;h1&gt;
  
  
  What is Web Security?
&lt;/h1&gt;

&lt;p&gt;The web is not safe for every user, Daily we hear about websites becoming unavailable because of denial of service attacks, or displaying changed information on their pages.&lt;br&gt;
These articles are essential for understanding web security basics.&lt;/p&gt;

&lt;p&gt;Those articles summarize the most common attacks and explain the countermeasures every web application should implement.&lt;/p&gt;

&lt;p&gt;Essentially, these articles provide you with the knowledge needed to create better and safer web applications.&lt;/p&gt;

&lt;h1&gt;
  
  
  Different Sorts of Web security:
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;HTTPS&lt;/li&gt;
&lt;li&gt;TLS&lt;/li&gt;
&lt;li&gt;SSL&lt;/li&gt;
&lt;li&gt;CORS&lt;/li&gt;
&lt;li&gt;CSP&lt;/li&gt;
&lt;li&gt;&lt;em&gt;OWASP (Security Risks) &amp;gt;&amp;gt; I will explain it in part II of this series&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Hashing Algorithms &amp;gt;&amp;gt; I will explain it in part III of this series&lt;/em&gt;

&lt;ul&gt;
&lt;li&gt;MD5&lt;/li&gt;
&lt;li&gt;SHA&lt;/li&gt;
&lt;li&gt;scrypt&lt;/li&gt;
&lt;li&gt;bcrypt&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fcqrt4s4bdtbav4zdjgbc.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fcqrt4s4bdtbav4zdjgbc.jpg" alt="Image"&gt;&lt;/a&gt;&lt;br&gt;
Image Source: &lt;a href="%E2%80%9Dhttps://www.ccpixs.com/%E2%80%9D"&gt;ccPixs.com&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  HTTPS
&lt;/h2&gt;

&lt;p&gt;It is the secure version of HTTP, the full name of this protocol is Hypertext transfer protocol secure, which is the primary used to send data between a web browser and a website.&lt;/p&gt;

&lt;p&gt;No one else can access the data, Because It uses TLS protocol to encrypt communications, I will explain it at the coming topic.&lt;/p&gt;

&lt;h3&gt;
  
  
  How HTTPS work?
&lt;/h3&gt;

&lt;p&gt;It uses encryption communication protocol, named Transport Layer Security (TLS), was known as Secure Sockets Layer (SSL).&lt;/p&gt;

&lt;p&gt;this encryption uses two keys, one names public key and the other one names private key.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;public key&lt;/strong&gt;: this shared between the browser and website.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;private key&lt;/strong&gt;: this key used to decrypt information encrypted by the public key and it not shared out of the server.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fv3m6r9s1ardfcq54m5l1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fv3m6r9s1ardfcq54m5l1.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
Image Source: &lt;a href="%E2%80%9Dhttps://lmo.wikipedia.org/wiki/Transport_Layer_Security%E2%80%9D"&gt;wikipedia.com&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  TLS
&lt;/h2&gt;

&lt;p&gt;it is the most protocol in use and designed to facilitate privacy, data security for communications over the internet, the use case of TLS is encrypting the communication between application and servers, emails, messaging voice by use (VoIP).&lt;/p&gt;

&lt;h3&gt;
  
  
  How TLS work?
&lt;/h3&gt;

&lt;p&gt;Any application or website to use the TLS it must have to install the TLS certification (also known as an “SSL certification”) on the base server, by issued to the person or the organization that own the Domain to install it on the base server.&lt;/p&gt;

&lt;p&gt;It contains very important information about the owner, private and public keys to use in decrypt and encrypt the communication.&lt;/p&gt;

&lt;p&gt;this process named TLS handshake 🤝 its steps :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;determined the version of the TLS will use during the session.&lt;/li&gt;
&lt;li&gt;Authenticate the identity of the server by using the TLS certificate.&lt;/li&gt;
&lt;li&gt;Generate the Session key for use during the session after the handshake process ended.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This topic needed a farther explanation for this I will make an article about it, and I will add a link to it here.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F3ejetj9dw0rxjlw9fzoh.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F3ejetj9dw0rxjlw9fzoh.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
Image Source: &lt;a href="%E2%80%9Dhttps://www.cloudflare.com/learning/ssl/what-is-ssl/%E2%80%9C"&gt;cloudflare.com&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  SSL
&lt;/h2&gt;

&lt;p&gt;Secure Sockets Layer (SSL), an encryption-based internet security protocol, it was founded for the ensuring of the integrity and privacy of the connections of the internet by the Netscape company at 1995, nowadays it names TLS.&lt;/p&gt;

&lt;h3&gt;
  
  
  How SSL works?
&lt;/h3&gt;

&lt;p&gt;it like the new TLS based on the concept of the handshake TLS.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is the difference between TLS and SSL?
&lt;/h3&gt;

&lt;p&gt;SSL is the older version of the TLS, the name changed after the Internet Engineering Task Force (IETF) be the owner of the SSL development after Netscape, some developer nowadays uses the SSL and TLS to referring for the same thing.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Notice&lt;/em&gt;&lt;/strong&gt; Since 1996 SSL not have any new update and this makes it very vulnerability to hacker attacks and all modern browsers no longer support it, they only support TLS.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fpqo28v3i4ophzcsj5mbt.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fpqo28v3i4ophzcsj5mbt.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
Image Source: &lt;a href="%E2%80%9Dhttps://morioh.com/p/3d5ffc21ace4%E2%80%9D"&gt;morioh.com&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  CORS
&lt;/h2&gt;

&lt;p&gt;Cross-Origin Resource Sharing (CORS) is a mechanism that uses HTTP headers to specify which outer origin have access to the local assets and how can access it that is mean we can make a white list for the allowed Cross-Origins that has access to our assets.&lt;/p&gt;

&lt;p&gt;the server must have a way to handle the outer requests and this what we will discuss now.&lt;/p&gt;

&lt;h3&gt;
  
  
  How CORS works?
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;when the site makes a get request to get resource from the out server, the browser adds a header that contains the origin like the example &lt;code&gt;Origin: http://www.example.com&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The server receives the preflight request and searches in its white-list for Access-Control-Allow-Origins about the giving origin and sends to the browser option call, then the browser will determine if the actual request is safe to send or not, example &lt;code&gt;Access-Control-Allow-Origin: http://www.example.com&lt;/code&gt; or this header &lt;code&gt;Access-Control-Allow-Origin: *&lt;/code&gt; will allow any request to take the resource.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;if the server specifies the Methods it will compare the request method with its example &lt;code&gt;Access-Control-Allow-Methods: PUT, DELETE&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fap6h63yendjwje9twx81.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fap6h63yendjwje9twx81.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
Image Source: &lt;a href="https://www.keycdn.com/support/content-security-policy" rel="noopener noreferrer"&gt;keycdn.com&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  CSP
&lt;/h2&gt;

&lt;p&gt;Content Security Policy is more security layer that helps in detect and mitigate different sort of militias attacks like (Cross-Site Scripting (XSS), data injection attacks, ClickJacking, ETC...).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cross-Site Scripting (XSS)&lt;/strong&gt;: it a vulnerability that allows the hacker to inject a militias code in the base website and it is for making the client execute it to take sensitive data like cookies, session’s info and site-specific information, That happens because web app does not use enough validation or encoding, The user’s browser cannot detect the malicious script is untrustworthy.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;data injection attacks:&lt;/strong&gt; is a malicious code injected in the network which fetched all the information from the database to the attacker and the number one type of it is the SQL injection.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Click Jacking:&lt;/strong&gt; or “UI redress attack” is when an attacker tricks a user into clicking on a button or link on another page that uses multiple transparent or opaque layers when he intended to click on the top-level.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How CSP works?
&lt;/h3&gt;

&lt;p&gt;it use Directives concept that’s every Directive have to specify where resources can load from, preventing browsers from loading data from any other locations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Most used Directives are:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;default-src:&lt;/strong&gt; the default policy for loading (JavaScript, images, CSS, AJAX requests, ETC...) example &lt;code&gt;default-src ‘self’ cdn.example.com;&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;img-src:&lt;/strong&gt; defines sources for images example &lt;code&gt;img-src ‘self’ img.example.com;&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;style-src:&lt;/strong&gt; defines sources for CSS files example &lt;code&gt;style-src ‘self’ css.example.com;&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;script-src:&lt;/strong&gt; defines sources for JavaScript files example &lt;code&gt;script-src ‘self’ js.example.com;&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;connect-src:&lt;/strong&gt; defines valid targets for to XMLHttpRequest (AJAX), WebSockets or EventSource, If it makes any connections to a host, that’s not allowed here, the browser will respond with a 400 error example &lt;code&gt;connect-src ‘self’;&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Multi-label directives defines:&lt;/strong&gt; &lt;code&gt;default-src ‘none’; script-src ‘self’; connect-src ‘self’; img-src ‘self’; style-src ‘self’;&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F365bjszwzgj4plz05a29.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F365bjszwzgj4plz05a29.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion:
&lt;/h2&gt;

&lt;p&gt;I hope that I have fulfilled the importance of this topic, and I explained to you the first steps to progress and gain knowledge in this broad field, and I will periodically add any new information on this topic in this series so that all developments in this area kept abreast.&lt;/p&gt;

&lt;p&gt;not Forget to read the following supplement from the articles on this topic.&lt;/p&gt;

&lt;p&gt;If there is any question, please feel free and contact me or leave it in the comments.&lt;/p&gt;

&lt;p&gt;To see similar works and also very important for every developer or knowledge researcher, you can do this by following me on the various social networks 👉 &lt;a href="https://www.youtube.com/channel/UCLjVsnrcH8J1166ctA0pwEg/" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt;, &lt;a href="https://twitter.com/AhmedAtefWD1" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;, &lt;a href="https://www.linkedin.com/in/ahmed-atef-dev/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; 👈&lt;/p&gt;

</description>
      <category>security</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Docker from the crust to the core, what and how it Works</title>
      <dc:creator>Ahmed Atef</dc:creator>
      <pubDate>Wed, 16 Sep 2020 18:53:28 +0000</pubDate>
      <link>https://forem.com/ahmedatefae/docker-from-the-crust-to-the-core-what-and-how-it-works-3l50</link>
      <guid>https://forem.com/ahmedatefae/docker-from-the-crust-to-the-core-what-and-how-it-works-3l50</guid>
      <description>&lt;p&gt;at the beginning, know that docker has a fundamental concept nowadays, and a container is a useful tool for packing, shipping and running applications with no specific hardware or software, but before the start, we must know the difference between “Virtual machine” (VM) and “Container”&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fvxtg46kxc9mcfebyxwc4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fvxtg46kxc9mcfebyxwc4.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What are the containers and VMs?
&lt;/h2&gt;

&lt;p&gt;first, the goal for the two is the same, and it is Isolate an application and its dependencies in a standalone unit that can run anywhere&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Virtual Machines:&lt;/strong&gt; A VM is an emulation of a real computer that works and executes programs like a real computer. VMs run on top of a physical machine using a hypervisor.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;hypervisor:&lt;/strong&gt; is a piece of software or hardware that is used to control the functioning of virtual machines. Hypervisors themselves run on physical computers, referred to as the “host machine.” Hypervisors provide the virtual hardware resources they need, like RAM and CPU. They split these resources between VMs. So if a virtual machine is running a heavy application, the hypervisor will allocate more resources to it and the virtual machine does not have direct access to the hardware only by the hypervisor.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Containers:&lt;/strong&gt; The one big difference between containers and VMs is that containers &lt;em&gt;share&lt;/em&gt; the host system’s kernel with other containers, unlike the VMs that everyone uses its operating system, This means that each container has a separate workspace from the other containers resource and shares the host kernel with other containers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fus4k6arqptu9qqsk67k4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fus4k6arqptu9qqsk67k4.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What are the docker components?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Docker Engine&lt;/li&gt;
&lt;li&gt;Docker Client&lt;/li&gt;
&lt;li&gt;Docker Daemon&lt;/li&gt;
&lt;li&gt;Dockerfile&lt;/li&gt;
&lt;li&gt;Docker Image&lt;/li&gt;
&lt;li&gt;Union File Systems&lt;/li&gt;
&lt;li&gt;Volumes&lt;/li&gt;
&lt;li&gt;Docker Containers&lt;/li&gt;
&lt;li&gt;Docker Registry&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fjtt3v2enfifo3wz5aos0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fjtt3v2enfifo3wz5aos0.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  How does Docker work?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Docker Engine:
&lt;/h3&gt;

&lt;p&gt;Is the layer on which Docker runs. Its primary responsibility manages containers, images, builds, and more.&lt;/p&gt;

&lt;h3&gt;
  
  
  Docker Client:
&lt;/h3&gt;

&lt;p&gt;its layer for the user to communicate with the Docker Daemon, it’s like a UI for Docker.&lt;/p&gt;

&lt;h3&gt;
  
  
  Docker Daemon:
&lt;/h3&gt;

&lt;p&gt;runs in the host computer, execute the commands sent by the Docker Client - like creating, running, and distributing containers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Dockerfile:
&lt;/h3&gt;

&lt;p&gt;The Docker File is where we write the steps or instructions to create a Docker Image. Some types of instructions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ENV for creating environment variables &amp;gt; ENV API-URL &lt;a href="http://www.example.com/" rel="noopener noreferrer"&gt;www.example.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;RUN for executing commands &amp;gt; RUN apt-get -y update&lt;/li&gt;
&lt;li&gt;COPY files from out or in docker workspace dir to another director &amp;gt; COPY . /usr/src/my-app&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Docker Image:
&lt;/h3&gt;

&lt;p&gt;A Docker image is a file comprising multiple layers. These layers created with instructions from Docker-file. This image is used to implement the code in a Docker container. An image is a complete, executable version of an application that, when a Docker user launches an image, it can become one or multiple instances of that container and images are read-only, Docker adds a read-write file system over the read-only file system of the image to create a container.&lt;/p&gt;

&lt;h3&gt;
  
  
  Union File Systems:
&lt;/h3&gt;

&lt;p&gt;It’s used to create images, and Docker images stored as a series of read-only layers. When we start the container, Docker takes the read-only image and adds a read-write layer on top. If the container in-progress changes to an existing file, then the file copied from the base read-only layer to the top-level read-write layer where the changes applied.&lt;/p&gt;

&lt;h3&gt;
  
  
  Volumes:
&lt;/h3&gt;

&lt;p&gt;They are directories (or files) outside of the default Union file system and exist as regular directories and files on the host file system to save data and share data between containers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Docker container:
&lt;/h3&gt;

&lt;p&gt;The Docker container encapsulates the application software, so it contains everything the application needs to run. It includes application icon, operating system, runtime, system tools, system libraries, etc.&lt;br&gt;
Docker containers created from Docker images. Docker creates a network interface so the container can talk to the local-host, attach an available IP address to the container, and perform the operation you specified to run your application when the image selected. Once the container has been created, you can run it in any environment without the need to make changes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Docker Registry:
&lt;/h3&gt;

&lt;p&gt;It’s a server-side application that stores and lets you distribute Docker images. The registry is open source and we use it to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Control tightly where your images are stored&lt;/li&gt;
&lt;li&gt;be the owner for the image publication pipeline&lt;/li&gt;
&lt;li&gt;Integrate image storage and deployment tightly into your internal development workflow&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fu7uljoas4ne10lfjtnn7.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fu7uljoas4ne10lfjtnn7.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion:
&lt;/h1&gt;

&lt;p&gt;Docker is a powerful technology that every software developer should learn and use because there is no limit as before to run applications on specific requirements for software or hardware.&lt;/p&gt;

&lt;p&gt;If there is any question, please feel free and contact me or leave it in the comments.&lt;/p&gt;

&lt;p&gt;To see similar works and also very important for every developer or cognitive researcher, you can do so by following me on different social networks. &lt;br&gt;&lt;br&gt;
👉 &lt;a href="https://www.youtube.com/channel/UCLjVsnrcH8J1166ctA0pwEg/" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt;, &lt;a href="https://twitter.com/AhmedAtefWD1" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;, &lt;a href="https://www.linkedin.com/in/ahmed-atef-dev/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; 👈&lt;/p&gt;

</description>
      <category>docker</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>devops</category>
    </item>
    <item>
      <title>What is the Progressive Web App (PWA) and how it works?</title>
      <dc:creator>Ahmed Atef</dc:creator>
      <pubDate>Fri, 11 Sep 2020 11:03:35 +0000</pubDate>
      <link>https://forem.com/ahmedatefae/what-is-the-progressive-web-app-pwa-and-how-it-works-5fm7</link>
      <guid>https://forem.com/ahmedatefae/what-is-the-progressive-web-app-pwa-and-how-it-works-5fm7</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--k1DPxtKU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://images.unsplash.com/photo-1484069560501-87d72b0c3669%3Fixlib%3Drb-1.2.1%26auto%3Dformat%26fit%3Dcrop%26w%3D1050%26q%3D80" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k1DPxtKU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://images.unsplash.com/photo-1484069560501-87d72b0c3669%3Fixlib%3Drb-1.2.1%26auto%3Dformat%26fit%3Dcrop%26w%3D1050%26q%3D80" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;What is the Progressive Web App (PWA)?&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;Progressive Web App (PWA) is a way to server the web application as if it a native app on all Versions of devices with the different operating systems without making various editions of the main app for each System, And Wikipedia says about PWA&lt;br&gt;
“Progressive Web App (PWA) is a term used to denote a new software development methodology. Unlike traditional applications, progressive web apps are a hybrid of regular web pages (or websites) and a mobile application. This new application model attempts to combine features offered by most modern browsers with the benefits of mobile experience.”.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CIFI6SC9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://images.unsplash.com/photo-1586527155047-b4639ecd6127%3Fixlib%3Drb-1.2.1%26ixid%3DeyJhcHBfaWQiOjEyMDd9%26auto%3Dformat%26fit%3Dcrop%26w%3D1950%26q%3D80" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CIFI6SC9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://images.unsplash.com/photo-1586527155047-b4639ecd6127%3Fixlib%3Drb-1.2.1%26ixid%3DeyJhcHBfaWQiOjEyMDd9%26auto%3Dformat%26fit%3Dcrop%26w%3D1950%26q%3D80" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;What Makes up a PWA?&lt;/strong&gt;
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Web Manifest&lt;/li&gt;
&lt;li&gt;Service Worker&lt;/li&gt;
&lt;li&gt;Static website&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GLj30lyP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://images.unsplash.com/photo-1586190022484-455f9692c4d6%3Fixlib%3Drb-1.2.1%26ixid%3DeyJhcHBfaWQiOjEyMDd9%26auto%3Dformat%26fit%3Dcrop%26w%3D1050%26q%3D80" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GLj30lyP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://images.unsplash.com/photo-1586190022484-455f9692c4d6%3Fixlib%3Drb-1.2.1%26ixid%3DeyJhcHBfaWQiOjEyMDd9%26auto%3Dformat%26fit%3Dcrop%26w%3D1050%26q%3D80" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;How Progressive Web App (PWA) work?&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;Any PWA contains some steps that happen for the first time when the user adds it to the device, and others that happen regularly when the application is offline or connected to the Internet, which makes it behave like the original applications now I will give you these steps.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the website asks the user to add as an icon on the home screen of their phones based on how frequently they visit the website.&lt;/li&gt;
&lt;li&gt;when the user accepts the request after that the website cache the manifest, static website data, and the server workers in the local storage of the browser that makes it faster after initial loading&lt;/li&gt;
&lt;li&gt;Then PWA sends a web application manifest to the system containing:

&lt;ul&gt;
&lt;li&gt;knew The name of the web application&lt;/li&gt;
&lt;li&gt;Links to the web app icons or image objects&lt;/li&gt;
&lt;li&gt;The preferred URL to launch or open the web app&lt;/li&gt;
&lt;li&gt;The web app configuration data&lt;/li&gt;
&lt;li&gt;The default orientation of the web app&lt;/li&gt;
&lt;li&gt;The option to set the display mode, e.g. full screen&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Then it was time for the better part, the role of the service worker that is can respond to Web / HTTP requests By Implement a programmable network proxy. It can cache content when that service is Unavailable, serve that content later in the document and check if a remote server is available. Service workers operate separately from the context of the main document, and the server worker life cycle divided into three steps:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Registration:&lt;/strong&gt; Registration involves telling the browser the location of the service worker in preparation for installation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Installation:&lt;/strong&gt; if there is no service worker instilled, the Installation occurs in the browser for the Progressive Web app, or if there is needed update to the service worker.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Activation:&lt;/strong&gt; if all the PWAs pages are closed the Activation occurs so that there is no conflict happen between the previous version and the updated one. since only a single service worker can be active for a domain.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9uiZdrQS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://images.unsplash.com/photo-1582070763274-dbeb2ef35190%3Fixlib%3Drb-1.2.1%26ixid%3DeyJhcHBfaWQiOjEyMDd9%26auto%3Dformat%26fit%3Dcrop%26w%3D982%26q%3D80" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9uiZdrQS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://images.unsplash.com/photo-1582070763274-dbeb2ef35190%3Fixlib%3Drb-1.2.1%26ixid%3DeyJhcHBfaWQiOjEyMDd9%26auto%3Dformat%26fit%3Dcrop%26w%3D982%26q%3D80" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  What are the Features of the Progressive Web App (PWA)?
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Progressive, for every user, needs on the browser, on the device, offline, online.&lt;/li&gt;
&lt;li&gt;Can work offline&lt;/li&gt;
&lt;li&gt;Fast, after initial loading&lt;/li&gt;
&lt;li&gt;Always up to date&lt;/li&gt;
&lt;li&gt;Installable, without the use of an App Store.&lt;/li&gt;
&lt;li&gt;Responsive, For all devices&lt;/li&gt;
&lt;li&gt;Safe, Served via &lt;a href="https://en.wikipedia.org/wiki/HTTPS"&gt;HTTPS&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Re-engageable, maintain engagement with the user by push notifications.&lt;/li&gt;
&lt;li&gt;shareable Can easily be linked via a URL.&lt;/li&gt;
&lt;li&gt;Behave like native apps&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fQ-uLgkX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://media-exp1.licdn.com/dms/image/C4E12AQF8slpeJDeJZA/article-inline_image-shrink_1000_1488/0%3Fe%3D1604534400%26v%3Dbeta%26t%3DTL3p15wOI4gq17YaEwYYyTCfFag6K9rO7ysi-rkJnRg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fQ-uLgkX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://media-exp1.licdn.com/dms/image/C4E12AQF8slpeJDeJZA/article-inline_image-shrink_1000_1488/0%3Fe%3D1604534400%26v%3Dbeta%26t%3DTL3p15wOI4gq17YaEwYYyTCfFag6K9rO7ysi-rkJnRg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;Conclusion:&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;in the end, PWA is a very powerful technology that very important for every web developer must learn and use based on the Features we describe before, Who knows, this could be your speciality.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>What is the web scraping and how it works?</title>
      <dc:creator>Ahmed Atef</dc:creator>
      <pubDate>Thu, 03 Sep 2020 19:56:39 +0000</pubDate>
      <link>https://forem.com/ahmedatefae/what-is-the-web-scraping-and-how-it-works-4aia</link>
      <guid>https://forem.com/ahmedatefae/what-is-the-web-scraping-and-how-it-works-4aia</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia-exp1.licdn.com%2Fdms%2Fimage%2FC4E12AQFFXRRp2Urp6w%2Farticle-inline_image-shrink_1000_1488%2F0%3Fe%3D1604534400%26v%3Dbeta%26t%3D36omjGyrsCEsOV2eQGXCdgaFCmmBaq5Z2tFNKWZkV3A" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia-exp1.licdn.com%2Fdms%2Fimage%2FC4E12AQFFXRRp2Urp6w%2Farticle-inline_image-shrink_1000_1488%2F0%3Fe%3D1604534400%26v%3Dbeta%26t%3D36omjGyrsCEsOV2eQGXCdgaFCmmBaq5Z2tFNKWZkV3A" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;What is web scraping?&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;Web scraping is a way to take some data from a large amount of data on the website and export it in different types of shapes such as JSON, CSV, Excel sheets and various extensions depending on the application or framework we use all of this for the purpose of analyzing that data to draw conclusions and comparisons from it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia-exp1.licdn.com%2Fdms%2Fimage%2FC4E12AQGxCLqM0OABSg%2Farticle-inline_image-shrink_1000_1488%2F0%3Fe%3D1604534400%26v%3Dbeta%26t%3Dq07Nae-k3HJnw8X62wD2Rt6yOqbZW7gsUFNMluOeTMU" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia-exp1.licdn.com%2Fdms%2Fimage%2FC4E12AQGxCLqM0OABSg%2Farticle-inline_image-shrink_1000_1488%2F0%3Fe%3D1604534400%26v%3Dbeta%26t%3Dq07Nae-k3HJnw8X62wD2Rt6yOqbZW7gsUFNMluOeTMU" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;How does web scraping work?&lt;/strong&gt;
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;the web scraping first take one or more websites URL&lt;/li&gt;
&lt;li&gt;then the scraper loads the HTML page, and if you use advanced scrapper it will render the entire page including CSS and JavaScript&lt;/li&gt;
&lt;li&gt;than scraper extract all the page data or specific element base on what we need&lt;/li&gt;
&lt;li&gt;then it will export the data in CSV, Excel, JSON or any other sport extinctions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia-exp1.licdn.com%2Fdms%2Fimage%2FC4E12AQF1W4KocY7PyQ%2Farticle-inline_image-shrink_1000_1488%2F0%3Fe%3D1604534400%26v%3Dbeta%26t%3DHlQKHz64OZwYdNj2v6tWA2M9OYNSTFgAld3iI8Ph5rM" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia-exp1.licdn.com%2Fdms%2Fimage%2FC4E12AQF1W4KocY7PyQ%2Farticle-inline_image-shrink_1000_1488%2F0%3Fe%3D1604534400%26v%3Dbeta%26t%3DHlQKHz64OZwYdNj2v6tWA2M9OYNSTFgAld3iI8Ph5rM" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;What are the uses of web scraping?&lt;/strong&gt;
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Scraping data from websites to generate leads&lt;/li&gt;
&lt;li&gt;Scraping product data from sites like Amazon for competitor analysis&lt;/li&gt;
&lt;li&gt;Scraping product details for comparison shopping&lt;/li&gt;
&lt;li&gt;Scraping financial data for market insights and research&lt;/li&gt;
&lt;li&gt;Scraping jobs websites to find most Appropriate for clients&lt;/li&gt;
&lt;li&gt;there are a lot of things to use scraping with that is based on the person who uses it&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia-exp1.licdn.com%2Fdms%2Fimage%2FC4E12AQF8lR0VSumZ0Q%2Farticle-inline_image-shrink_1000_1488%2F0%3Fe%3D1604534400%26v%3Dbeta%26t%3DSdYCvj6JS5gel5IQ2IP8ouNYa9eC44-_z0CZIPS9eUY" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia-exp1.licdn.com%2Fdms%2Fimage%2FC4E12AQF8lR0VSumZ0Q%2Farticle-inline_image-shrink_1000_1488%2F0%3Fe%3D1604534400%26v%3Dbeta%26t%3DSdYCvj6JS5gel5IQ2IP8ouNYa9eC44-_z0CZIPS9eUY" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;What do I need as a programmer to learn it?&lt;/strong&gt;
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Basic knowledge in programming languages like python or JavaScript&lt;/li&gt;
&lt;li&gt;Basic knowledge in a framework that is for scraping and this is some example for python (Scrapy, PySpider, Selenium)&lt;/li&gt;
&lt;li&gt;Basic Html knowledge that is for knew the type of element in the target web site to scrape it&lt;/li&gt;
&lt;li&gt;Basic CSS or XML knowledge that for use it to select the HTML * elements from the website by the framework tools&lt;/li&gt;
&lt;li&gt;(Optional) basic knowledge in the regular expression to search for the HTML elements in the website&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia-exp1.licdn.com%2Fdms%2Fimage%2FC4E12AQF8slpeJDeJZA%2Farticle-inline_image-shrink_1000_1488%2F0%3Fe%3D1604534400%26v%3Dbeta%26t%3DTL3p15wOI4gq17YaEwYYyTCfFag6K9rO7ysi-rkJnRg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia-exp1.licdn.com%2Fdms%2Fimage%2FC4E12AQF8slpeJDeJZA%2Farticle-inline_image-shrink_1000_1488%2F0%3Fe%3D1604534400%26v%3Dbeta%26t%3DTL3p15wOI4gq17YaEwYYyTCfFag6K9rO7ysi-rkJnRg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;Conclusion:&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;in the end, web scraping is an important topic and easy to learn by some basic knowledge you can begin to work in this niche&lt;/p&gt;

</description>
      <category>python</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>security</category>
    </item>
  </channel>
</rss>
