
Maintaining State in PHP – जैसाकि हमने पहले भी कहा कि HTTP एक Stateless Protocol है, जिसका मतलब ये है कि एक बार जब Web Server किसी Client Request को पूरा कर देता है तो फिर उस Client व Server दोनों के बीच कोई Connection नहीं रह जाता।
दूसरे शब्दों में कहें तो एक ही Client द्वारा की जाने वाली एक से ज्यादा Requests को Identify करने के लिए Web Server के पास कोई तरीका नहीं होता।
State उस स्थिति में बहुत ही महत्वपूर्ण होते हैं जब हम कोई Shopping Cart Create कर रहे होते हैं। क्योंकि इस स्थिति में Web Server के लिए एक ही Client से आने वाली एक से ज्यादा Requests के बारे में जानना जरूरी होता है। यदि Web Server Same Client द्वारा Perform किए जाने वाले Actions जैसे कि Shopping Cart में नया Product Add करना, किसी Product को Remove करना आदि कामों को Unique तरीके से हर Client के साथ Association नहीं कर पाएगा, तो User एक से ज्यादा Items की Online Shopping नहीं कर सकता।
HTTP Protocol की इस Stateless State के कारण Programmers ने कई ऐसी Tricks Develop की हैं, ताकि Web Server अपने हर Web Browser को Uniquely Identify करने में सक्षम हो सके।
इन Tricks के अन्तर्गत कई बार HTML Form से कुछ Hidden Fields एक Page से दूसरे Page के बीच Transfer किए जाते हैं। PHP इन Hidden Fields को सामान्य Form Fields की तरह ही Treat करता है और इन्हें PHP में $_GET या $_POST Super Global Arrays द्वारा Access किया जा सकता है। इन Hidden Fields का प्रयोग करके हम Shopping Carts की सारी Information को एक Web Page से दूसरे Web Page के बीच Transfer कर सकते हैं।
फिर भी इस तरीके की तुलना में एक दूसरी Trick को ज्यादा उपयोग में लिया जाता है, जिसमें हर User को एक Unique Username व Password Assign किया जाता है और User के ID को एक Single Filed की तरह विभिन्न Pages के बीच Hidden Field के रूप में Transfer किया जाता है।
हालांकि Hidden Fields का तरीका सभी Web Browsers में काम करता है फिर भी इस तरीके के अन्तर्गत हमेंशा Dynamically एक Form Generate करना पडता है, तभी कोई Hidden Field Create हो सकता है और एक Page से दूसरे Page के बीच किसी Value या Information को Transfer कर सकता है। इसलिए कुछ और तकनीकों को Develop किया गया।
एक अन्य तकनीक के अन्तर्गत URL Rewriting प्रक्रिया को अपनाया जाता है, जिसमें हर Local URL पर Click करने पर Dynamically एक नया URL बनता है, जिसमें सभी जरूरी Extra Information होती हैं। इन Extra Information को अक्सर URL के Parameter के रूप में Specify किया जाता है। उदाहरण के लिए हम हर User को एक Unique ID Assign कर सकते हैं जो कि सभी URLs में निम्नानुसार Dynamically Attach हो जाते हैं:
https://www.bccfalna.com/catalog.php?userid=123
जब हम हमारे सभी Local Links को Dynamically Change करते हुए इस तरह से User ID को हर URL में Attach करते हैं, तो हम हर User को अपने Application में Uniquely Identify कर सकते हैं। URL Rewriting तकनीक सभी Dynamically Generated Documents के लिए काम करता है लेकिन URL Rewriting एक जटिल प्रक्रिया है।
इसलिए एक और तकनीक को उपयोग में लिया जाता है, जिसे Cookies नाम दिया गया है। Cookie एक प्रकार की मामूली सी Information होती है, जो कि Web Server User के Computer में Save करता है। यानी Web Server किसी भी User के Computer में User की जानकारी के बिना सिर्फ और सिर्फ Cookie Information को ही Save कर सकता है।
जबकि Cookie के अलावा किसी भी अन्य प्रकार की Information को User के Computer में Save करने से पहले User की Permission जरूर लेता है, क्योंकि Cookie के अलावा User के Computer का Operating System किसी भी अन्य जानकारी को User के Computer में बिना User की Permission प्राप्त किए, Save नहीं करने देता।
चूंकि Cookie के रूप में कुछ Specific Information को User के Computer में Save किया जाता है, इसलिए Web Server हर User Request के लिए User के Computer में Cookie को Check कर सकता है और हर User को Uniquely Identify कर सकता है।
Cookies का प्रयोग Repeating User Requests व Same Web Browser द्वारा Repeated Visits को Identify करने में काफी महत्वपूर्ण Role Play करता है, लेकिन Cookies की भी अपनी Problems हैं।
सबसे बडी समस्या ये है कि कुछ Web Browsers Cookies को Support नहीं करते और जो Web Browsers Cookies को Support करते हैं, उनमें भी Cookies को Disabled करने की व्यवस्था होती है, जिससे User अपनी इच्छानुसार तय कर सकता है कि उसे उसके Computer में Cookies को Save होने देना है या नहीं।
इसलिए हमारा कोई भी ऐसा Application, जो कि किसी User को Uniquely Identify करने के लिए Cookies का प्रयोग करता है, उसे एक और तकनीक को Use करना पडता है, जिसे Session Tracking कहा जाता है, जो कि State Tracking का Best Proved तरीका है।
इस तकनीक के अन्तर्गत हम PHP द्वारा एक ऐसा Persistent Variable Create कर लेते हैं, जो कि Application के विभिन्न Pages के बीच Available व Accessible रहता है। साथ ही इस तकनीक का प्रयोग करके हम ये भी जान सकते हैं कि Same User ने कब-कब और कितनी बार Website को Visit किया है। इस प्रकार से Cookies व Sessions दो ऐसे Most Used Best तरीके हैं, जिन्हें Combined रूप से Use करके हम HTTP Stateless Protocol में भी State को Maintain कर सकते हैं।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook PHP in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
PHP in Hindi | Page: 647 | Format: PDF