সার্ভার-সাইড সেশনগুলি কি বিশ্রাম লঙ্ঘন করে?


14

মতে রায় ফিন্ডিং তার ধাতুগত থিসিস মধ্যে (HTTP- র স্পেসিফিকেশন নীতিকে লেখক এক) স্থাপত্য শৈলী যখন বিশ্রাম নিয়ে আলোচনা তিনি উল্লেখ:

[ই] আবেদনের ক্লায়েন্ট থেকে সার্ভারে অনুরোধটি অবশ্যই অনুরোধটি বোঝার জন্য প্রয়োজনীয় সমস্ত তথ্য থাকতে পারে এবং সার্ভারে কোনও সঞ্চিত প্রসঙ্গের সুবিধা নিতে পারে না।

"সঞ্চিত প্রসঙ্গ" দ্বারা তিনি অ্যাপ্লিকেশন অবস্থার কথা উল্লেখ করছেন যেমন পরবর্তী পৃষ্ঠার পৃষ্ঠা নম্বরটি বনাম সম্পদ রাষ্ট্র যেমন কোনও ডেটা স্টোর, চিত্র ইত্যাদি - যা যুক্তিযুক্তভাবে আরএসএসির পুরো বিন্দু

এটি কি ন্যায়সঙ্গতভাবে বলা যায় যে সার্ভারে সেশন ডেটা সংরক্ষণ করার জন্য (অবিচ্ছিন্নভাবে বা অন্যথায়) নির্ভর করার কারণে খাঁটি বিশ্রামের বেশিরভাগ প্রচেষ্টা (এটিকে উপরের থিসিসের সাথে সঙ্গতিপূর্ণ রূপায়ণ হিসাবে সংজ্ঞায়িত করা) ব্যর্থ হতে হবে ?

সেশনের ধারণাটি সাধারণ - বিশেষত ওয়েব বিকাশকারীদের কাছে - তবে এটি কি উপরোক্ত সংজ্ঞা অনুসারে বিশুদ্ধ?


2
আমি সেই সংজ্ঞা অনুসারে বলব কার্যত কিছুই বিশ্রামের নয়, তবে কীভাবে এই সংজ্ঞাটি যুক্তিসঙ্গত? একটি "বিশৃঙ্খল" গুগল অনুসন্ধানের কল্পনা করুন- যেখানে আপনাকে অনুসন্ধানের জন্য গুগল করার অনুরোধে আপনাকে ইন্টারনেটের একটি সূচক সরবরাহ করতে হবে। কি? না, আপনার দৃ you়তার দোকান থাকতে পারে না এবং শান্ত থাকতে হবে তা বলার মতো শান্ত ইন্টারফেসটি অর্থহীন to এর অর্থ এই নয় যে আমাদের সকলকে মেমোরি সেশনগুলি বজায় রাখা এবং এটি এখনও ভাল বিশ্রামের নকশা বলা শুরু করা উচিত ...
জিমি হোফা

3
আমি মনে করি এটি প্রয়োগ করা উচিত রাষ্ট্র এবং সংস্থান রাষ্ট্রের মধ্যে পার্থক্য রয়েছে (গুগল সূচকটি রিসোর্স স্টেট হবে, এবং পুরোপুরি বৈধ) noted আমি প্রশ্নে আরও স্পষ্ট করা উচিত।
ম্যাট 16

এমন পার্থক্য আছে কি? দয়া করে এটি সংজ্ঞায়িত করুন :) আমি লোকেরা এগুলি আগে সংজ্ঞায়িত করার চেষ্টা করতে দেখেছি, তবে এটি আসল অস্পষ্ট কারণ তারা আসলে আলাদা নয়। এগুলি উভয়ই পরিবর্তনযোগ্য ডেটা, এক রূপের রাষ্ট্রের এবং অন্যটির মধ্যে একমাত্র প্রাসঙ্গিক পার্থক্য হ'ল এটি স্থির থাকুক বা না থাকুক, যেখানে ফর্ম না হওয়ার অর্থ এটি সাধারণত পুনর্গঠনযোগ্য যা এটিকে আলাদা করে তোলে।
জিমি হোফা

1
আমি নিজেই এটা ভাবছি। যেহেতু কেউই কখনই ব্যাখ্যা করেনি যে আমার অ্যাপ্লিকেশনটিতে কেন একটি স্বর্ণের "বিশ্রামের" তারা চাইবেন আমি তা নিয়ে সত্যিই চিন্তা করি না।
PSr

উত্তর:


10

আমি হ্যাঁ বলব, সেশন স্টেটটি একটি রেস্টস্টুল অ্যাপটিকে অ-রেস্টস্টুল করে তোলে। তুচ্ছ উদাহরণ, আমার বোন ওয়াল স্ট্রিট জার্নালে সাবস্ক্রাইব করে। নিয়মিতভাবে তিনি পেওয়ালের পিছনে কিছু পড়ছেন এবং কোনও ডাব্লুএসজে অ্যাকাউন্ট নেই এমন কোনও বন্ধুকে একটি লিঙ্ক (তার নিজের ইমেল ক্লায়েন্টের মাধ্যমে, ডাব্লুএসজে দিয়ে নয়) প্রেরণ করার সিদ্ধান্ত নেবেন। ক্লিক, প্রেরণ, ব্যর্থ। স্পষ্টতই সেই URL এ আমার বোনের অভিজ্ঞতা তার বন্ধুর চেয়ে আলাদা।

সম্পর্কিত, তবে কঠোরভাবে বিষয় নয়: আমি নেটে গুরুত্বপূর্ণ গবেষণামূলক প্রচেষ্টাকে সমর্থন করার জন্য নকশাকৃত একটি অ্যাপ্লিকেশনের প্রাথমিক নকশার পর্যায়ে আছি (যাকে বলা হয় ক্যুয়েস্টস (মনে করুন: স্টেরয়েড এবং এলএসডি-তে বুকমার্ক))। অনুসন্ধানের মালিক তার / তার ডেটাগুলির একটি নির্দিষ্ট দৃষ্টিভঙ্গি অন্য কারও সাথে ভাগ করে নিতে চান তবে এই ভিউয়ের জন্য ইউআই রাষ্ট্রের সংমিশ্রণ প্রয়োজন (উদাহরণস্বরূপ কোন তথ্যটি কোন প্যানে প্রদর্শিত হবে) ইউআইতে অ্যাক্সেসের উপযুক্ত অনুমতি সহ এবং প্রদর্শিত তথ্য। প্রাপককে লক্ষ্যযুক্ত দেখার জন্য প্রচুর সঞ্চিত রাষ্ট্রের প্রয়োজন।

আমার বর্তমান সমাধানটি হ'ল সমস্ত ইউআই / এসিএল / দেখার জন্য প্রয়োজনীয় যে কোনও তথ্য একটি পৃথক বস্তুতে সঞ্চয় করা এবং সেই বস্তুর জন্য ইউআরএল (সম্ভবত একটি ইউইউডি) ফিরিয়ে দেওয়া return আমি বিশ্বাস করি যে ভিউ অবজেক্টটি অ্যাক্সেস করা এই অর্থে বিশ্রামজনক হিসাবে বিবেচিত হতে পারে যে এর দখলে থাকা প্রত্যেকে একই তথ্য / অভিজ্ঞতা লাভ করে।


1
আপনি দেখতে অবজেক্টের উদাহরণ এটির অন্য একটি কোণ। ঝরঝরে।
ম্যাট

অন্যান্য দুর্দান্ত উত্তর থাকা সত্ত্বেও এটিকে উত্তর হিসাবে গ্রহণ করা, বেশিরভাগ কারণ এটি সরাসরি প্রশ্নের উত্তর দেয় এবং একটি খুব স্পষ্ট উদাহরণ দেয়। এছাড়াও, ভিউ অবজেক্টের দ্বিতীয় অংশটি স্কেলগুলি নির্দেশ করে।
ম্যাট 19

1
যদি আপনি বলছেন যে ডাব্লুএসজে সাইটটি অ-বিশৃঙ্খল অ্যাপ্লিকেশনটির একটি উদাহরণ, আমি আপনার সাথে এটির দ্বিমত পোষণ করব না যে আপনার উদাহরণটি এটি দেখায়। উদাহরণস্বরূপ, ডাব্লুএসজে সাইটটি যদি আপনার বোনের ক্লায়েন্ট তার ডেটা উপস্থাপনের জন্য সম্পূর্ণ প্রদত্ত ডেটার উপর নির্ভর করে, তবে এটি @ ম্যাট প্রদত্ত সংজ্ঞা অনুসারে, রেস্টস্টুল। এটি যদি অস্থায়ী ইন-মেমরি সেশনের স্থিতির উপর নির্ভর করে তবে এটি ম্যাট বিশ্রাম না দেওয়ার সংজ্ঞা দ্বারা। আমি কেবল এটি উল্লেখ করছি কারণ ম্যাট যে সংজ্ঞাটি দিয়েছেন তা বাস্তবায়ন নির্দিষ্টকরণের উপর ভিত্তি করে আরএসটি ব্যবহারের কৌশল দ্বারা আরও ভাল সংজ্ঞাযুক্ত।
জিমি হোফা

@JimmyHoffa - আমার বোঝার বাকী আছে সীমাবদ্ধতাসমূহ এটি হল আড়ম্বরহীন । এটা আমার কাছে বেশ স্পষ্ট মনে হয়।
পিটার রাওয়েল

ডাব্লুএসজে অ্যাপ্লিকেশনটির কোনও রাজ্য না থাকলে দেখতে পারা যায় এমন নিবন্ধটি ক্লায়েন্টের কাছে পাঠাতে হবে। এই নিবন্ধটি সাইট প্রশাসকদের দ্বারা যে কোনও সময় সম্পাদনা করা যেতে পারে, কোনও ভুল করবেন না এটি ডাব্লুএসজে অ্যাপ্লিকেশনটির রাজ্যের একটি অংশ। আমি মনে করি যে পার্থক্যটির জন্য চেষ্টা করা হচ্ছে তা হ'ল এটি স্থির রাষ্ট্র, সুতরাং এটির লেনদেনের ক্ষেত্রে সহজতর পারমাণবিকতা নিয়ন্ত্রণের সাথে অধিবেশনগুলির মতো অনর্থক রাষ্ট্রের তুলনায় এটির বেশি গ্যারান্টি এবং কম পরিচালন ওভারহেড থাকবে। এটির সাথে সাধারণ ব্যবহারের মডেল হ'ল লোকেরা কী বিশ্রাম নিতে চান। (আমি মনে করি)
জিমি হফা

2

সার্ভার-সাইড সেশনগুলি কি বিশ্রাম লঙ্ঘন করে?

তারা অবশ্যই! আপনি যখন REST প্রয়োগ করেন, অবশ্যই সার্ভার-সাইড সেশন থাকতে হবে নাহলে আপনার একটি হাইব্রিড আরপিসি / আরইএসটি সমাধান রয়েছে।

প্রতিবার নতুন অনুরোধ করার সময় ক্লায়েন্টকে অবশ্যই অনুরোধটি পরিবেশন করতে প্রয়োজনীয় সমস্ত প্রসঙ্গকে অবশ্যই একটি রিয়েলস্টফুল সার্ভিসে প্রেরণ করতে হবে। সার্ভারটি পরবর্তী অনুরোধগুলিকে দ্রুত সার্ভিসিং করতে তথ্য ক্যাশে মুক্ত, তবে ক্যাশেড তথ্যটি কোনও সার্ভার-সাইড সেশনের পরিমাণের নয়। অন্য কথায়, অনুরোধটি নিজেই ক্যাশেড রাষ্ট্রের অনুপস্থিতিতে প্রক্রিয়া করার জন্য পর্যাপ্ত তথ্য থাকতে হবে।


1

সম্ভবত "সেশন ডেটা" দ্বারা আপনি কী বোঝাতে চান তার উপর নির্ভর করে। এটি কি একটি নির্দিষ্ট শব্দ?

দুটি পক্ষের মধ্যে সুরক্ষিত যোগাযোগ প্রায়শই সার্ভারকে একটি সময়-সীমাবদ্ধ "অ্যাক্সেস টোকেন" তৈরি করতে জড়িত থাকে যা ক্লায়েন্টকে অনুমোদনের পদ্ধতি হিসাবে প্রতিটি অনুরোধ সরবরাহ করতে পারে। এই অ্যাক্সেস টোকেনটি ইতিমধ্যে আমি "সেশন ডেটা" বলব - এটি সার্ভার-সাইড, সময়-সীমাবদ্ধ এবং একটি ক্লায়েন্টের সাথে সম্পর্কিত (সাধারণত তার অনুমতিগুলি) থাকে।

যদি এই ধরণের অপারেশনটি অ-রেস্টস্টুল হিসাবে চিহ্নিত করা হত তবে আমি খুব অবাক হব। OAuth একটি উদাহরণ।

আমি বিশেষজ্ঞ নই এবং আমি এখানে খুব আত্মবিশ্বাসী নই; আমি কেবল তাদের অন্তর্দৃষ্টি ভাগ করে নিচ্ছি তারা আশা করি কার্যকর হবে prove


1

আরআরইএসটির সবচেয়ে গুরুত্বপূর্ণ বিষয়টি হল যে কোনও ইউআরআই একটি রিসোর্সারে সর্বদা একই রিসোর্সকে নির্দেশ করে। সুতরাং ব্যবহারকারীরা এই রিসোর্সের একটি রেফারেন্সের কাছাকাছি যেতে পারেন এবং প্রত্যেকে একই দেখতে পায়। এটাকে প্রতিনিধিত্বমূলক রাজ্য স্থানান্তর (আরইএসটি) বলা হয়। যদি সার্ভার স্থিতি রাখে এবং একই ইউআরআইয়ের জন্য একটি ভিন্ন রিসোর্স সরবরাহ করে তবে আমি বলব এটি আর বিশুদ্ধ নয় ST


এটি অগত্যা সত্য নয় যে ব্যবহারকারীরাও একই জিনিসটি দেখতে পাবেন .. অ্যাক্সেস যে কোনও একজন ব্যবহারকারী কতটা দেখতে পায় তা নির্ধারণ করতে পারে।
এরিক

@ এরিক কিন্তু ব্যবহারকারীরা অনুরোধে তারা কতটা দেখতে চান তা জানিয়ে দেবেন (স্বীকৃতি শিরক ব্যবহার করে), সুতরাং পাকলের উত্তরগুলি সত্য বলে ধরেছে।
জোহান

1
@ জোহান আমি একই প্রান্ত থেকে বিভিন্ন ব্যবহারকারীর জন্য বিভিন্ন ডেটা ফিরিয়ে আনব। অন্যথায় ব্যবহারকারীকে প্রমাণীকরণের বিষয়টি কী।
এরিক

@ এরিক আমি এটিও করতাম। আমি যত কম বিশ্বাস করি প্রমাণীকরণটি উত্সের রাজ্যের বাইরে নয়, তাই দৃ strictly়ভাবে বললে যদি প্রমাণীকরণকারীর ব্যবহারকারীর দ্বারা দৃষ্টিভঙ্গি প্রভাবিত হয় তবে এটি আর বিশুদ্ধ নয়। কে আপনি অ্যাক্সেসের জন্য অনুরোধ করছেন তার উপর নির্ভর করে আপনি যদি আপনার বিশ্রামের ব্যাজটি চান তবে আপনার উত্সটির একাধিক "ভিউ" তৈরি করা উচিত, এটি কেবলমাত্র কয়েকটি দৃশ্যে অ্যাক্সেসকে অনুমোদিত করে। সুতরাং জনসাধারণ / ব্যবহারকারী প্রোফাইলে / {ইউজারআইডি} / পাবলিক ভিউতে অ্যাক্সেস পেতে পারে এবং ব্যবহারকারী / ব্যবহারকারী প্রোফাইলে / {ইউজারআইডি} / পূর্ণ প্রোফাইলে এবং অনুমোদিত বন্ধুদের অ্যাক্সেস পেতে / ব্যবহারকারীর প্রোফাইলে / {ইউজারআইডি friends / বন্ধুরা দেখুন
জোহান

0

রাজ্যহীন, RESTful অ্যাপ্লিকেশনগুলিতে রাষ্ট্র যুক্ত করার জন্য সেশনগুলি মূলত ব্যবহৃত হয়। সুতরাং আনুষ্ঠানিকভাবে, এটি আপনার আস্থার প্রয়োগকে রাষ্ট্রীয় করে তোলে, তবে সার্ভারের স্টেট থাকা আপনার জীবনকে কিছুটা সহজ করে তোলে, যেহেতু প্রতিটি অনুরোধ / প্রতিক্রিয়াতে আপনাকে সমস্ত ডেটা পিছনে পিছনে যেতে হবে না ।

অধিবেশনগুলি এবং আরও সাধারণভাবে রাষ্ট্রগুলি আপনাকে এড়াতে দেয় এবং এর কার্য সম্পাদনে কিছুটা ইতিবাচক সুবিধা রয়েছে (কম ডেটা স্থানান্তরিত) এবং সুরক্ষা (এতে টেম্পার করার জন্য কম ডেটা উপলব্ধ)।

সুতরাং এটি আনুষ্ঠানিকভাবে আরএসইএসটির সংজ্ঞাটির অংশ লঙ্ঘন করার সময়, এটি এতটাই কার্যকর যে সেশনগুলির মাধ্যমে রাষ্ট্র ব্যবহার না করে এমন RESTful অ্যাপ্লিকেশনগুলি দেখা বিরল ।


আমি একমত নই আপনার কাছে একটি শপিং সাইট রয়েছে যা আপনাকে ব্র্যান্ড, রঙ এবং আকারের মাধ্যমে ফিল্টার করতে দেয়। প্রচলিত ওয়েব 1.0 ওয়েবসাইটগুলি কিছু চেকবক্স, একটি সার্ভার-সাইড সেশন এবং পোস্ট সহ এটি পরিচালনা করবে। আমি উদাহরণ.অর্গ / শার্টগুলির লিঙ্কটি ভাগ করতে চাইলে লোকেরা দেখতে পাবে না যে আমি মাঝারি, কালো এবং মূলগুলি বেছে নিয়েছি। (এটি পিছনে ক্লিক করার পরে কুৎসিত "আপনি ডেটা পুনরায় পোস্টিং" বার্তাও সৃষ্টি করে)) তবে আমি যদি লিঙ্কটি ভাগ করি (উদাহরণস্বরূপ)। সমস্ত প্রয়োজনীয় রাষ্ট্রীয় তথ্য ইউআরএল (অথবা প্রয়োজনীয় পোস্টে বডি, তবে আপনি এটি ভাগ করতে পারবেন না)।
জেসি বুচানন

... অস্থির সবকিছুর জন্য উপযুক্ত হতে পারে না। আপনার অনুমান অ্যাপ্লিকেশন সংস্থান ভিত্তিক (শপিং সাইট অবশ্যই!)? সম্ভবত এটি কোনও আরআইএর পক্ষে উপযুক্ত নাও হতে পারে, প্রচুর রাষ্ট্রের সাথে, যা সংস্থান ভিত্তিক নয়। আমি সততার জন্য কোনও ভাল উদাহরণের কথা ভাবতে পারি না।
জেসি বুচানন

0

ফিল্ডিংয়ের এই বিবৃতিটির অর্থ কীটি হ'ল REST এপিআইয়ের হোস্টিং অ্যাপ্লিকেশন সার্ভারটি পরিবেশের অবস্থার সাথে কোনওরকম দৃশ্যের পিছনে থাকা কোনও অনুরোধের সাথে যুক্ত করে না। একটি অ্যাপ্লিকেশন সার্ভার এবং একটি ডাটাবেস সার্ভারের মধ্যে পার্থক্য বিবেচনা করুন । আরআরইএসটি সীমাবদ্ধতা হ'ল অ্যাপ্লিকেশন সার্ভারটি রাষ্ট্রহীন হওয়া উচিত । যাইহোক, অ্যাপ্লিকেশন সার্ভারটি অনুরোধের অংশ হিসাবে প্রাপ্ত তথ্যের উপর ভিত্তি করে ডাটাবেস সার্ভারে রিসোর্স স্টেটের জন্য অনুরোধগুলি অর্পণ করতে পারে, যেমন অনুমোদনের শিরোনামে বা ইউরি নিজেই কোনও ব্যবহারকারী / পাসওয়ার্ড সংমিশ্রণ । সর্বোপরি, আরএসটি ক্লায়েন্ট / সার্ভারের মডেলের উপর ভিত্তি করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.