Overview of client & server-side scripting

Client-side scripts (JavaScript) મુલાકાતીના browser માં ચાલે છે અને clicks તથા લખાણને તરત પ્રતિભાવ આપે છે, જ્યારે server-side scripts (PHP, Python) પાનું મોકલાય એ પહેલાં web server પર ચાલે છે અને databases તથા ગુપ્ત વસ્તુઓ સંભાળે છે, અને ખરેખરી sites બંનેને સાથે વાપરે છે.

8 min read · 9 cards · 2 checks

Read in: English · हिन्दी · ગુજરાતી


Theory

તમારી website બે computers ચલાવે છે

જ્યારે કોઈ student FestConnect પર નોંધણી કરે છે, ત્યારે બે સાવ જુદાં યંત્રો સંડોવાયેલાં હોય છે. એનો phone (client) form દેખાડે છે અને એ લખે તેમ પ્રતિભાવ આપે છે. College નું server ખરેખર નોંધણી સંઘરે છે અને બેઠકોની સંખ્યા સામે એને તપાસે છે.

Code બંનેમાંથી કોઈ પણ જગ્યાએ ચાલી શકે છે, અને કઈ જગ્યાએ ચાલે છે એ મહત્ત્વનું છે. Browser નું script એ લખે એ જ ક્ષણે 'email ખોટું લાગે છે' ચમકાવી શકે છે. Server નું script નોંધ સંઘરીને ticket ને email કરી શકે છે. એકેય બીજાનું કામ સારી રીતે કરી શકતું નથી.

Theory

વેઇટર અને રસોડું

Restaurant માં, વેઇટર (client-side) ત્યાં જ હાજર છે: તમારો order લે છે, દેખીતી ભૂલો સુધારે છે ('એ અમારી પાસે નથી'), તરત જવાબ આપે છે. રસોડું (server-side) નજરથી દૂર છે: એ સામગ્રી રાખે છે, ગુપ્ત રીતો અનુસરે છે, અને ખરેખર ખાવાનું બનાવે છે. તમે ગ્રાહકને રસોડામાં ન જવા દો, અને વેઇટર રાંધી શકતો નથી. Website કામ એ જ રીતે વહેંચે છે.

Theory

Client-side સામે server-side

  • Client-side scripting એ browser માં ચાલે છે. ભાષા છે JavaScript. એ clicks અને keys ને પ્રતિભાવ આપે છે, પાનું ફરી load કર્યા વગર એને સુધારે છે, અને તરત validate કરે છે. વાપરનાર એને જોઈ શકે છે (View Source) અને બંધ પણ કરી શકે છે.
  • Server-side scripting એ પાનું મોકલાય એ પહેલાં web server પર ચાલે છે. ભાષાઓમાં PHP, Python, Node આવે છે. એ database વાંચે અને લખે છે, passwords તપાસે છે, ગુપ્ત વસ્તુઓ રાખે છે, અને HTML બનાવે છે. વાપરનાર આ code ક્યારેય જોતો નથી.

ખરેખરી sites બંને વાપરે છે.

At a glance

કામ ક્યાં થાય છે

પાસુંClient-side (JS)Server-side (PHP/Python)
ક્યાં ચાલે છેbrowser માંweb server પર
શેમાં હોશિયારતરતનું UI, પ્રતિભાવોdatabase, ગુપ્ત વસ્તુઓ, auth
વાપરનારને દેખાય?હા (View Source)ના
ફરી load કરવું પડે?નાસામાન્ય રીતે નવું પાનું પાછું આપે છે

Think first

બેઠકો કોણ તપાસે?

FestConnect દેખાડે છે 'બાકી બેઠકો: 3'. ચોથી વ્યક્તિને નોંધણી કરતાં અટકાવતી ચકાસણી browser (JS) માં થવી જોઈએ કે server પર, અને એ ફક્ત browser પર કેમ ભરોસો ન કરી શકાય?

Show the answer

Server પર. 'બાકી બેઠકો' ની browser વાળી નકલ વાસી હોઈ શકે છે (કોઈ બીજાએ હમણાં જ નોંધણી કરી) અને વાપરનાર JavaScript ને બદલી કે બંધ કરી શકે છે. ફક્ત server જ ખરેખરો, હાલનો database જુએ છે અને ચોથી નોંધણીને ભરોસાપાત્ર રીતે નકારી શકે છે. Browser સારા અનુભવ માટે ઇશારો કરી શકે ('ભરેલું લાગે છે'), પણ સત્ય server પાસે છે. આ સોનેરી નિયમ છે: જે સાચું જ હોવું જોઈએ એના માટે client પર ક્યારેય ભરોસો ન કરો.

Quiz

તમારું FestConnect નું form submit કરતાં પહેલાં ખાલી ખાનાં નકારવા JavaScript વાપરે છે. શું ખરાબ data ને database થી દૂર રાખવા એટલું પૂરતું છે?

  1. ના: server એ ફરી validate કરવું જ પડે, કારણ કે વાપરનારા client-side JS ને બાજુ પર મૂકી શકે છે
  2. હા: client-side validation database ને પૂરેપૂરું સલામત કરે છે
  3. હા, જ્યાં સુધી તમે વધુ JavaScript ની ચકાસણીઓ પણ ઉમેરો
  4. ના: JavaScript forms ને validate કરી જ શકતું નથી
Show the answer

ના: server એ ફરી validate કરવું જ પડે, કારણ કે વાપરનારા client-side JS ને બાજુ પર મૂકી શકે છે

Client-side JS નું validation ઝડપી, મૈત્રીપૂર્ણ અનુભવ માટે છે, પણ વાપરનાર JS બંધ કરી શકે છે કે સીધી request મોકલી શકે છે, જે એને સાવ બાજુ પર મૂકી દે છે, એટલે સંઘરતાં પહેલાં server એ ફરી તપાસવું જ પડે (A). વધુ JS (C) એવી ચકાસણીને સુધારતું નથી જેને બંધ કરી શકાય. JS ચોક્કસ validate કરી શકે છે (D ખોટું છે); એ ફક્ત બચાવની છેલ્લી હરોળ નથી. નિયમ: UX માટે client પર validate કરો, સલામતી માટે server પર ફરી validate કરો.

Watch out

ભરોસાનો ફાંદો

સૌથી મોટી ગેરસમજ: 'મારું JavaScript તપાસે છે, એટલે એ સલામત છે'. Browser માંનું બધું જ વાપરનારને દેખાય છે અને એ બદલી શકે છે. Passwords, ભાવ, બેઠકોની મર્યાદા, પરવાનગીઓ, બધું server પર જ અમલમાં મુકાવું જોઈએ. Client-side scripting પાનું કેવું લાગે છે એ સુધારે છે; server-side scripting નક્કી કરે છે કે સાચું શું છે.

Theory

તમે server ની બાજુને પહેલેથી મળી ચૂક્યા છો

BCA303 (Python વત્તા SQLite) નું database નું કામ અને BCA105 નું SQL એ server-side હતું: browser થી દૂર, data ની બાજુમાં ચાલતો code. આખું આ Unit 3 એ બીજો અડધો ભાગ છે, client ની બાજુ, JavaScript માં. અંતે, FestConnect નું form browser માં validate થશે (આ એકમ) અને તમને બરાબર સમજાશે કે ખરેખરું સંઘરવાનું હજી server ને જ કેમ સોંપાય છે.

Summary

Key takeaways

  • Client-side scripting (JavaScript) browser માં ચાલે છે: તરતના પ્રતિભાવ, UI માં ફેરફાર, ફરી load નહીં; વાપરનારને દેખાય અને એ બંધ કરી શકે.
  • Server-side scripting (PHP, Python, Node) server પર ચાલે છે: database, ગુપ્ત વસ્તુઓ, authentication; વાપરનારથી છુપાયેલું.
  • ખરેખરી sites બંને વાપરે છે: ચપળ અનુભવ માટે JS, સત્ય અને સંગ્રહ માટે server.
  • Client-side validation ફક્ત સગવડ છે; સલામતી માટે server એ ફરી validate કરવું જ પડે.
  • જે સાચું જ હોવું જોઈએ (બેઠકો, ભાવ, passwords) એના માટે client પર ક્યારેય ભરોસો ન કરો.
  • Memory hook: વેઇટર (client) અને રસોડું (server).

Study this properly

This page is the lesson to read. In Gri-Learn the same topic is a graded deck: the self-checks are scored and your weak topics are tracked. Free to start.

Start this topic

Already have an account? Sign in

More from Overview of JavaScript

Gri-Learn · syllabus-mapped B.C.A. lessons in English, Hindi and Gujarati

Overview of client & server-side scripting · Web Designing-1 (option A) · Gri-Learn