உங்கள் லோக்கல் (Local) ஃபைல்களைத் திறக்கும்போது ஏன் 'HTTP Call' அல்லது 'Network Request' நடக்கிறது என்பதற்கான விளக்கம் இதோ:
1. 'Request' என்பது ஒரு தகவல் தொடர்பு (Communication)
- ஜாவாஸ்கிரிப்ட் மற்றும் பிரவுசரைப் பொறுத்தவரை, ஒரு ஃபைலைத் திறப்பது என்பது ஒரு "ஆர்டர்" கொடுப்பது போன்றது.
- உங்கள் HTML ஃபைல் லோக்கல் டிஸ்க்கில் (
C: Driveஅல்லதுD: Drive) இருந்தாலும், பிரவுசர் அதை நேரடியாகப் படிக்காது. - மாறாக, பிரவுசரின் ஒரு பகுதி (Client) உங்கள் கம்ப்யூட்டரின் மற்றொரு பகுதியிடம் (File System) அந்த ஃபைலைத் தரும்படி ஒரு ரிக்வெஸ்ட் கேட்கும். இந்தத் தொடர்புதான் நெட்வொர்க் டேப்பில் பதிவாகிறது.
2. ஏன் இது 'HTTP' ஆகக் காட்டப்படுகிறது?
- பொதுவாக இணையதளங்கள்
http://அல்லதுhttps://மூலம் இயங்கும். ஆனால் லோக்கல் ஃபைல்கள்file:///என்ற புரோட்டோகால் மூலம் இயங்கும்.
- Chrome போன்ற நவீன பிரவுசர்கள், அனைத்து வகையான டேட்டா பரிமாற்றங்களையும் (அது லோக்கல் ஃபைலாக இருந்தாலும் சரி) ஒரே மாதிரியான Network Log-ல் காட்டுகின்றன.
- நீங்கள் ஒரு HTML-ஐத் திறந்தால், அதில் உள்ள CSS, Images மற்றும் JS கோப்புகளை ஒவ்வொன்றாகப் பெற பிரவுசர் தனித்தனி 'Internal Requests' அனுப்பும்.
3. JavaScript Point of View (JS ஏன் இதைச் செய்கிறது?)
- ஜாவாஸ்கிரிப்ட் கோப்புகள் இயங்க வேண்டுமானால், அவை முதலில் பிரவுசரின் மெமரிக்குள் (Memory) வர வேண்டும்.
-
Parsing: பிரவுசர் உங்கள் HTML-ஐ வாசிக்கும்போது,
<script src="script.js">என்ற வரியைப் பார்த்தால், உடனே அந்த ஃபைலைத் தேடி ஒரு ரிக்வெஸ்ட் அனுப்பும். -
Security (CORS): நீங்கள் லோக்கல் ஃபைலை நேரடியாகத் திறக்கும்போது (Double click), சில ஜாவாஸ்கிரிப்ட் வேலைகள் (உதாரணமாக:
fetch()அல்லதுAPIs) பாதுகாப்பு காரணங்களுக்காகத் தடுக்கப்படலாம். ஏன்னென்றால்,file://முறையில் ரிக்வெஸ்ட் அனுப்புவது பாதுகாப்பற்றதாக பிரவுசர் கருதுகிறது.
4. எப்போது இது மாறும்?
- நீங்கள் Live Server (VS Code extension) அல்லது லோக்கல் ஹோஸ்ட் (Localhost) பயன்படுத்தினால், அது உண்மையான HTTP Request ஆக மாறும்.
-
Localhost: இங்கே ஒரு குட்டி சர்வர் உங்கள் கம்ப்யூட்டருக்குள்ளேயே ஓடும். இது
file://என்பதை விடhttp://localhost:5500என இயங்குவதால், ஒரிஜினல் இணையதளம் போலவே வேலை செய்யும். -
சுருக்கமாக: உங்கள் ஃபைல்கள் கம்ப்யூட்டருக்கு உள்ளேயே இருந்தாலும், பிரவுசர் அவை ஒவ்வொன்றையும் தனித்தனியாகத் திரட்டி
(Fetch)ஒரு பக்கமாக உருவாக்க வேண்டியுள்ளது. அந்தத் "திரட்டும்" செயலே நெட்வொர்க் டேப்பில் ரிக்வெஸ்ட்டாகத் தெரிகிறது.

Top comments (0)