Table of Contents
Introduction
рд╣реЗрд▓реЛ рджреЛрд╕реНрддреЛрдВ рдЖрдЬ рд╣рдо рдЗрд╕ post рдореЗрдВ Script tag рдХреЗ Attribute рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдиреЗрдЧреЗ рдХреА attribute script tag рдореЗрдВ рдХреНрдпреЛрдВ use рдХрд┐рдпреЗ рдЬрд╛рддреЗ рд╣реИ рдФрд░ рдЙрд╕рдХреЗ use рдХрд░рдиреЗ рдХрд╛ resion рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ!. рдЕрдЧрд░ рдЖрдк JavaScript use рдХрд░рддреЗ рд╣реЛ web development рдореЗрдВ, рддреЛ <script></script> tag рдЖрдкрдХреЗ рд▓рд┐рдП рдмрд╣реБрдд important рд╣реИ!.
рдЗрд╕ tag рдХреЗ through рд╣рдо HTML file рдореЗрдВ JavaScript embed (рдЕрдВрджрд░ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ) рдпрд╛ external JS file рдХреЛ connect рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ!.
рдЗрд╕ article рдореЗрдВ рд╣рдо detail рдореЗрдВ рджреЗрдЦреЗрдВрдЧреЗ script tag рдХреЗ рд╕рднреА attributes, рдЙрдирдХрд╛ meaning, рдФрд░ рдХрдм use рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП!.
<script></script>Tag рдХреНрдпрд╛ рд╣реИ?
<script> </script>tag рдХрд╛ use JavaScript code рдХреЛ HTML document рдореЗрдВ include рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИ!. рдЖрдк рдЪрд╛рд╣реЗ рддреЛ JS code directly рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реЛ рдпрд╛ external file link рдХрд░ рд╕рдХрддреЗ рд╣реЛ!. рдЖрдк рджреЛрдиреЛрдВ example рдирд┐рдЪреЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИ рдХреА рд╣рдо inline рдФрд░ extenal рджреЛрдиреЛрдВ рддрд░реАрдХреЗ рд╕реЗ JavaScript code рдХреЛ рдЕрдкрдиреЗ HTML document рдХреЗ рдХреИрд╕реЗ add рдХрд░рд╛ рд╕рдХрддреЗ рд╣реИ!.
Example: Inline Script
<script>
console.log("Hello World!");
</script>
Example 2: External JS File
<script src="app.js"></script>
All <script></script> Tag Attributes рдФрд░ рдЙрд╕рдХреЗ Meaning and Examples
src
Script tag рдореЗрдВ src attribute рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ external file рдХреЛ include рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИ!. рдЬрдм рдЖрдк JS file рдХреЛ рдЕрд▓рдЧ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реЛ рддреЛ рдЖрдк js file рдХреЛ рдЙрд╕ src attribute рдХреЗ рдЬрд░рд┐рдпреЗ add рдХрд░рд╛ рд╕рдХрддреЗ рд╣реИ!.
Example:
<script src="app.js"></script>
type
Script tag рдореЗрдВ type attribute script рдХрд╛ type рдмрддрд╛рддрд╛ рд╣реИ рдФрд░ default рд░реВрдк рд╕реЗ text/javascript рд╣реЛрддрд╛ рд╣реИ!. рдпрд╛рдирд┐ рдХреА type attribute рдмрддрд╛рддрд╛ рд╣реИ рдХреА script рдХрд┐рд╕ type рдХрд╛ рд╣реИ рдпрд╛рдиреА browser рдХреЛ рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ рдХреА рдЗрд╕ script рдХреЗ рдЕрдВрджрд░ рдХрд┐рд╕ language рдХрд╛ code рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ!. рдФрд░ рдЖрдЬ рдХреЗ time рдореЗрдВ browser рдЕрдЧрд░ type attribute рдирд╛ рджреЗрдЦ рднреА рдкрд╛рдпреЗ рддреЛ рднреА automatically рд╕рдордЭрддрд╛ рд╣реИ рдХреА рдпреЗ JavaScript code рд╣реИ!.
рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк modern ES6 modules use рдХрд░ рд░рд╣реЗ рд╣реЛ (with import / export), рддреЛ type=”module” рд▓рд┐рдЦрдирд╛ реЫрд░реВрд░реА рд╣реИред
type=”text/javascript”
рдпреЗ traditional рдпрд╛ old-style JavaScript code рдХреЗ рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИ!. рдпреЗ browser рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХреА script normal JavaScript code contain рдХрд░рддрд╛ рд╣реИ!. рдЙрд╕ attribute рдХреЛ рдХрдм рдЙрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИ рдЬрдм рдЖрдк normal JS рд▓рд┐рдЦ рд░рд╣реЗ рд╣реЛ рдпрд╛ рдЬрдм рдЖрдкрдХреЛ import/export рдХреА реЫрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ!.
Example:
<script type="text/javascript">
console.log("Hello from normal JavaScript!");
</script>
//Ya external file ke sath
<script type="text/javascript" src="main.js"></script>
type=”module”
рдпреЗ modern JavaScript (ES6 Modules) рдХреЗ рд▓рд┐рдП use рд╣реЛрддрд╛ рд╣реИ!. type=”module” рд▓рд┐рдЦрдиреЗ рд╕реЗ browser рд╕рдордЭрддрд╛ рд╣реИ рдХреА рдпреЗ modular script рд╣реИ!. рдпрд╛рдиреА рдЗрд╕рдореЗрдВ import рдФрд░ export statements use рдХрд┐рдпреЗ рдЧрдП рд╣реИрдВ!. script tag рдЗрд╕ attribute рдХрд╛ use рдХрдм рдХрд░ рд╕рдХрддреЗ рд╣реИ! рдЬрдм рдЖрдк JS code рдХреЛ modules рдореЗрдВ┬а divide рдХрд░рддреЗ рд╣реЛ, рдЬрдм рдЖрдк рдПрдХ file рд╕реЗ рджреВрд╕рд░реА file рдореЗрдВ function / variable import рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реЛ, рдЬрдм рдЖрдк modern bundlers(like Vite, Rollup, Parcel, Webpack) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реЛ!.
Example:
/* file1.js */
export function greet(name) {
console.log(`Hello, ${name}!`);
}
/* file2.js */
import { greet } from './file1.js';
greet('Rahul');
/*index.html */
<script type="module" src="file2.js"></script>
async
Script tag рдореЗрдВ async attribute рдХрд╛ рдорддрд▓рдм рд╣реЛрддрд╛ рд╣реИ “asynchronously” рдпрд╛рдиреА browser script рдХреЛ HTML parsing рдХреЗ рд╕рд╛рде-рд╕рд╛рде load рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЬреИрд╕реЗ рд╣реА script download рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреБрд░рдВрдд execute рдХрд░ рджреЗрддрд╛ рд╣реИ, рдмрд┐рдирд╛ HTML parsing рдХрд╛ wait рдХрд┐рдпреЗ!.
async Internally Works рдХреИрд╕реЗ рдХрд░рддрд╛ рд╣реИ!
Browser HTML document read рдХрд░ рд░рд╣рд╛ рд╣реЛрддрд╛ рд╣реИ tab <script src=”file.js” async> find рд╣реЛрддрд╛ рд╣реИ рддрдм Browser file.js download рдХрд░рдирд╛ start рдХрд░ рджреЗрддрд╛ рд╣реИ background рдореЗрдВ рдФрд░ HTML parsing continue рд░рд╣рддреА рд╣реИ, stop рдирд╣реАрдВ рд╣реЛрддреА. рдЬреИрд╕реЗ рд╣реА file
download complete рд╣реЛрддреА рд╣реИ Browser HTML parsing temporarily stop рдХрд░рддрд╛ рд╣реИ рдФрд░ script рддреБрд░рдВрдд execute рдХрд░рддрд╛ рд╣реИ. Script execute рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж HTML parsing resume рд╣реЛрддреА рд╣реИ!.
Example:
<script src="analytics.js" async></script>
рдпрд╣рд╛рдБ┬аanalytics.js asynchronously load рдФрд░ run рд╣реЛрдЧрд╛. Browser HTML parsing continue рдХрд░реЗрдЧрд╛, рдЬреИрд╕реЗ рд╣реА script download рд╣реЛ рдЧрдпрд╛, рд╡реЛ execute рд╣реЛ рдЬрд╛рдпреЗрдЧрд╛ рдЪрд╛рд╣реЗ HTML complete parse рд╣реБрдЖ рдпрд╛ рдирд╣реАрдВ!.
Important Note
Async scripts donтАЩt maintain order. рдЕрдЧрд░ multiple async scripts рд▓рдЧрд╛рдП рд╣реЛ, рддреЛ рдЬреЛ рдкрд╣рд▓реЗ load рд╣реЛ рдЬрд╛рдпреЗрдЧрд╛ рд╡реЛ рдкрд╣рд▓реЗ рдЪрд▓реЗрдЧрд╛, рдЪрд╛рд╣реЗ рдирд┐рдЪреЗ рд▓рд┐рдЦрд╛ рд╣реЛ рдпрд╛ рдКрдкрд░.
Example:
<script src="one.js" async></script> <script src="two.js" async></script>
рдЕрдЧрд░ two.js рдкрд╣рд▓реЗ load рд╣реЛ рдЧрдпрд╛, рддреЛ рд╡реЛ рдкрд╣рд▓реЗ рдЪрд▓реЗрдЧрд╛ even though one.js рдКрдкрд░ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛!.
defer
defer рдХрд╛ рдорддрд▓рдм рд╣реЛрддрд╛ рд╣реИ, Script рдХреЛ background рдореЗрдВ load рдХрд░реЛ, рдФрд░ HTML parsing complete рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж execute рдХрд░реЛ. рдпрд╛рдиреА рдХреЗ Broswer script file download рдХрд░реЗрдЧрд╛ HTML рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд▓реЗрдХрд┐рдВрдЧ execute рддрдм рдХрд░реЗрдЧрд╛ рдЬрдм рдкреВрд░рд╛ HTML parse рд╣реЛ рдЪреВрдХрд╛ рд╣реЛ!.
defer Internally Works рдХреИрд╕реЗ рдХрд░рддрд╛ рд╣реИ?
Browser HTML parsing start рдХрд░рддрд╛ рд╣реИ рдЬрдм <script src=”file.js” defer></script> рдорд┐рд▓рддрд╛ рд╣реИ рддреЛ Script download рд╣реЛрдирд╛ background рдореЗрдВ start рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ Browser HTML parsing continue рдХрд░рддрд╛ рд╣реИ!┬а stop рдХрд┐рдпреЗ рдмрд┐рдирд╛ рдЬрдм Browder HTML parsing complete рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рддрдм script execute рд╣реЛрддрд╛ рд╣реИ!, DOM рдХреЗ рд╕рд╛рде safely interact рдХрд░ рд╕рдХрддрд╛ рд╣реИ!.
Example:
<!DOCTYPE html>
<html>
<head>
<script src="config.js" defer></script>
<script src="main.js" defer></script>
<script src="helper.js" defer></script>
</head>
<body>
<h2>Welcome User</h2>
</body>
</html>
crossorigin
crossorigin attribute browser рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдХреЛрдИ external JavaScript file (different domain рд╕реЗ) load рд╣реЛ рд░рд╣реА рд╣реЛ, рддрдм browser рдЙрд╕ request рдХреЛ рдХреИрд╕реЗ handle рдХрд░реЗ credentials (cookies, tokens) рдХреЗ рд╕рд╛рде рдпрд╛ рдмрд┐рдирд╛редрдорддрд▓рдм рдЬрдм <script> tag рдореЗрдВ src рдХрд┐рд╕реА рджреВрд╕рд░реЗ domain (рдЬреИрд╕реЗ CDN, third-party API, рдпрд╛ image server) рд╕реЗ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ attribute define рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡реЛ request secure рддрд░реАрдХреЗ рд╕реЗ рдХреИрд╕реЗ рднреЗрдЬреА рдЬрд╛рдПред
Example:
<script src="https://cdn.com/lib.js" crossorigin="anonymous"></script>
integrity
integrity attribute рдПрдХ security feature рд╣реИ рдЬрд┐рд╕реЗ Subresource Integrity (SRI) рдХрд╣рддреЗ рд╣реИрдВ!. рдпреЗ browser рдХреЛ allow рдХрд░рддрд╛ рд╣реИ verify рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреА рдЬреЛ external file ( рдЬреИрд╕реЗ JavaScript рдпрд╛ CSS file CDN рд╕реЗ) load рд╣реЛ рд░рд╣реА рд╣реИ, рд╡реЛ change рдпрд╛ tamper рдирд╣реАрдВ рд╣реБрдИ рд╣реИ!.
Simple words рдореЗрдВ, integrity ensures рдХрд░рддрд╛ рд╣реИ рдХреА рдЬреЛ file рд╣рдо load рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╡реЛ рдмрд┐рд▓рдХреБрд▓ original рд╣реИ, рдЙрд╕рдореЗ рдХреЛрдИ malicious code рдпрд╛ change рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ!.
Example:
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-abc..." crossorigin="anonymous" ></script>
рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
Browser рдЬрдм script download рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╡реЛ рдЙрд╕ file рдХрд╛ hash calculate рдХрд░рддрд╛ рд╣реИ!. рдлрд┐рд░ рд╡реЛ compare рдХрд░рддрд╛ рд╣реИ рдЙрд╕ hash рдХреЛ рдЬреЛ рдЖрдкрдиреЗ integrity attribute рдореЗрдВ рджрд┐рдпрд╛ рд╣реИ!. рдЕрдЧрд░ рджреЛрдиреЛрдВ match рдХрд░рддреЗ рд╣реИрдВ script load рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ!. рдЕрдЧрд░ match рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИ рддреЛ┬а browser script рдХреЛ block рдХрд░ рджреЗрддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдЖрдкрдХрд╛ website safe рд░рд╣рддрд╛ рд╣реИ рдЕрдЧрд░ рдХрд┐рд╕реА рдиреЗ CDN рдпрд╛ file рдореЗрдВ рдЫреЗрдж-рдЪрд╛рдб рдХрд░ рджреА рд╣реЛ!.
рдХреНрдпреЛрдВ Use рдХрд░рддреЗ рд╣реИрдВ integrity?
Security purpose рд╕реЗ рдЕрдЧрд░ File рдореЗрдВ рдХрд┐рд╕реА рдиреЗ malicious code add рдХрд░ рджрд┐рдпрд╛ рд╣реЛ рддреЛ рдпреЗ detect рдХрд░рддрд╛ рд╣реИ!. рдФрд░ Browser confirm рдХрд░рддрд╛ рд╣реИ рдХреА file exactly рд╡рд╣реА рд╣реИ рдЬреЛ developer рдиреЗ provide рдХреА рдереА!. Automatic Protection Browser khud рд╣реА script рдХреЛ block рдХрд░ рджреЗрддрд╛ рд╣реИ рдЕрдЧрд░ hash рдЧрд▓рдд рд╣реИ!.
nomodule
Script tag рдореЗрдВ nomodule attribute рдХрд╛ use рд╣реЛрддрд╛ рд╣реИ legacy JavaScript support рдХреЗ рд▓рд┐рдП. рдпреЗ browser рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХреА рдЕрдЧрд░ browser ES6 modules support рдирд╣реАрдВ рдХрд░рддрд╛, рддрдм рдпреЗ script execute рдХрд░реЛ. рдЕрдЧрд░ module support рдХрд░рддрд╛ рд╣реИ, рддреЛ ignore рдХрд░реЛ. Modern browsers (Chrome, Firefox, Edge, Safari) modules support рдХрд░рддреЗ рд╣реИрдВ рддреЛ ignore рдХрд░реЗрдВрдЧреЗ nomodule scripts
рдФрд░ Old browsers (IE, older Safari versions) run рдХрд░реЗрдВрдЧреЗ nomodule script рдХреЛ!.
Example:
<script src="legacy.js" nomodule></script>
nomodule рдПрдХ boolean attribute рд╣реИ рдЖрдкрдХреЛ value рджреЗрдиреЗ рдХреА реЫрд░реВрд░рдд рдирд╣реАрдВ!. рдЕрдЧрд░ present рд╣реИ рддреЛ old browsers рдореЗрдВ рд░рди рд╣реЛрдЧрд╛ рдФрд░ Modern browsers рдореЗрдВ ignore рд╣реЛрдЧрд╛!
Internally рдХреИрд╕реЗ Works рдХрд░рддрд╛ рд╣реИ?
Browser HTML parse рдХрд░рддрд╛ рд╣реИ. рдЕрдЧрд░ <script type=”module”></script>supported рд╣реИ рдпреЗ module script run рдХрд░реЗрдЧрд╛ рдФрд░ nomodule scripts рдХреЛ ignore рдХрд░реЗрдЧрд╛. рдЕрдЧрд░ browser ES6 module support рдирд╣реАрдВ рдХрд░рддрд╛ рддреЛ nomodule script execute рд╣реЛрдЧрд╛!.
Example:
<!-- Modern browsers ke liye --> <script type="module" src="main.js"></script> <!-- Old browsers ke liye --> <script nomodule src="legacy.js"></script>
main.js рдореЗрдВ рдЖрдк modern JS features use рдХрд░ рд╕рдХрддреЗ рд╣реЛ (import, export) legacy.js рдореЗрдВ рдЖрдк normal ES5 JavaScript use рдХрд░реЛрдЧреЗ (IE support рдХреЗ рд▓рд┐рдП)ред
referrerpolicy
script tag рдореЗрдВ referrerpolicy attribute browser рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХреА рдЬрдм script рдпрд╛ resource load рд╣реЛ, рддреЛ HTTP referrer information (origin URL) рдХреЛ server рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ share рдХрд░рдирд╛ рд╣реИ. рдпрд╛рдиреА рдпреЗ control рдХрд░рддрд╛ рд╣реИ рдХреА рдЖрдкрдХреЗ page рдХрд╛ URL server рдХреЛ рдкрддрд╛ рдЪрд▓реЗ рдпрд╛ рдирд╣реАрдВ рдЬрдм external script рдпрд╛ resource load рд╣реЛ!.
Example:
<script src="https://example.com/script.js" referrerpolicy="no-referrer"></script>
Browser рдХреЛрдИ referrer info рдирд╣реАрдВ рднреЗрдЬреЗрдЧрд╛. Server рдХреЛ рдпреЗ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓реЗрдЧрд╛ рдХреА request рдХрд╣рд╛рдБ рд╕реЗ рдЖрдпреА рд╣реИ!
Why Use referrerpolicy?
Privacy: рдЖрдкрдХреЗ users рдХрд╛ URL server рдХреЗ рд╕рд╛рде share рдирд╛ рд╣реЛ!.
Security: Sensitive pages рдХрд╛ full URL рд▓реАрдХ рдирд╛ рд╣реЛ!.
Analytics Control: рдЕрдЧрд░ рдЖрдк analytics рдпрд╛ tracking scripts use рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк decide рдХрд░ рд╕рдХрддреЗ рд╣реЛ рдХреА URL share рдХрд░рдирд╛ рд╣реИ рдпрд╛ sirf origin.
charset
Script tag рдореЗрдВ charset attribute specify рдХрд░рддрд╛ рд╣реИ character encoding рдЬреЛ script file рдореЗрдВ use рд╣реБрдЖ рд╣реИ!. Browser рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХреА script file рдХрд╛ text рдХреМрдирд╕рд╛ encoding standard follow рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЬреИрд╕реЗ UTF-8, ISO-8859-1, etc. рдпреЗ old practice рд╣реИ, modern scripts рдореЗрдВ mostly UTF-8 default рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП rarely use рд╣реЛрддрд╛ рд╣реИ!.
рдпреЗ рдХреИрд╕реЗ work рдХрд░рддрд╛ рд╣реИ?
Browser script file рдХреЛ download рдХрд░рддрд╛ рд╣реИ, Browser рджреЗрдЦрддрд╛ рд╣реИ рдХреА script рдореЗрдВ charset attribute specified рд╣реИ рдпрд╛ рдирд╣реАрдВ
рдЕрдЧрд░ specified рд╣реИ рддреЛ browser use encoding рдХреЗ according read рдХрд░реЗрдЧрд╛ script рдХреЛ, рдЕрдЧрд░ charset рдирд╛ рджрд┐рдпрд╛ рддреЛ browser default encoding use рдХрд░рддрд╛ рд╣реИ (usually UTF-8).
Example:
<script src="my-script.js" charset="UTF-8"></script>
рдЕрдЧрд░ script рдореЗрдВ special characters рд╣реИ (рдЬреИрд╕реЗ Hindi text, emojis, symbols) рддреЛ UTF-8 ensure рдХрд░реЗрдЧрд╛ рдХреА рд╡реЛ correct parse рд╣реЛ
рдЕрдЧрд░ encoding mismatch рд╣реИ рддреЛ script рдореЗрдВ syntax error рдпрд╛ wrong characters show рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ!.
<script></script> tag рд╕рд┐рд░реНрдл рдПрдХ HTML element рдирд╣реАрдВ рдпреЗ web pages рдХреЛ dynamic рдФрд░ interactive рдмрдирддрд╛ рд╣реИ!. рдЕрдЧрд░ рдЖрдк рдЗрди attributes рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ use рдХрд░рддреЗ рд╣реЛ, рддреЛ рдЖрдкрдХреЗ web pages faster, secure, рдФрд░ SEO-friendly рдмрди рдЬрд╛рддреЗ рд╣реИрдВ!.






