কেউ দয়া করে আমাকে এইচটিটিপি সত্তা কী তা বর্ণনা করতে পারেন ?
আমি এইচটিটিপি ক্লায়েন্ট ডকুমেন্টেশন পড়ছি, তবে আমি আসলে বুঝতে পারি না এর অর্থ কী?
কেউ দয়া করে আমাকে এইচটিটিপি সত্তা কী তা বর্ণনা করতে পারেন ?
আমি এইচটিটিপি ক্লায়েন্ট ডকুমেন্টেশন পড়ছি, তবে আমি আসলে বুঝতে পারি না এর অর্থ কী?
উত্তর:
একটি HTTP সত্তা একটি HTTP অনুরোধ বা প্রতিক্রিয়ার সর্বাধিক যা কিছু শিরোনাম এবং বডি উপস্থিত থাকে। এটি অনুরোধ বা স্থিতি রেখা ছাড়াই সম্পূর্ণ অনুরোধ বা প্রতিক্রিয়া বলে মনে হচ্ছে (যদিও কেবলমাত্র নির্দিষ্ট শিরোনাম ক্ষেত্রগুলি সত্তার অংশ হিসাবে বিবেচিত হয় )।
বর্ণনা করা; এখানে একটি অনুরোধ:
POST /foo HTTP/1.1 # Not part of the entity.
Content-Type: text/plain # ┬ The entity is from this line down...
Content-Length: 1234 # │
# │
Hello, World! ... # ┘
এবং একটি প্রতিক্রিয়া:
HTTP/1.1 200 OK # Not part of the entity.
Content-Length: 438 # ┬ The entity is from this line down...
Content-Type: text/plain # │
# │
Response body ... # ┘
&
পরিবর্তে কোনও সত্তা ব্যবহার করছে &
। এটিও কি কোনও সত্তা নয়? পার্থক্য কি?
এখানে 3 টি সাধারণ কেস রয়েছে:
কেস 1. আপনি একক অনুরোধে 3 টি ফাইল আপলোড করছেন। এই 3 টি ফাইল 3 টি সত্তা। এটি Content-Type
কী ধরণের ফাইল তা নির্দেশ করার জন্য তাদের প্রত্যেকের নিজস্ব নিজস্ব রয়েছে।
কেস ২. আপনি একটি ওয়েব পৃষ্ঠা দেখছেন। ব্রাউজার পটভূমিতে সত্তা হিসাবে একটি এইচটিএমএল ফাইল ডাউনলোড করেছে। যেহেতু পৃষ্ঠাটি ধারাবাহিকভাবে আপডেট করা যেতে পারে তাই আপনি পরে একেবারে পৃথক সত্তা পেতে পারেন।
কেস 3. আপনি একটি পেয়েছেন 304 Not Modified
। কোনও সত্তা স্থানান্তরিত হয়নি।
এক কথায়, সত্তা কোনও http বার্তার (অনুরোধ বা প্রতিক্রিয়া) এর ভিতরে একটি optionচ্ছিক পেলোড হয়, সুতরাং এটি সত্তা এবং বার্তার মধ্যে একটি " পার্ট-পুরো " সম্পর্ক is
কিছু শিরোলেখ ক্ষেত্র মধ্যস্থতাকারীদের মধ্যে কীভাবে বার্তা স্থানান্তর করতে হয় Message
তা Transfer-Encoding
বর্ণনা করতে প্রয়োগ করে এবং অনুরোধ / প্রতিক্রিয়া শৃঙ্খলে ( hop-by-hop headers
) দ্বারা কোনও অ্যাপ্লিকেশন যুক্ত করতে বা মুছে ফেলা যেতে পারে । তুলনায়, এই শিরোলেখ ক্ষেত্রগুলি প্রয়োগ করে Entity
এমন কয়েকটি বৈশিষ্ট্য যা সত্তার আকার, প্রকার, সংক্ষেপণ অ্যালগরিদম ইত্যাদি বর্ণনা করে ...
আরও পড়ুন, আরএফসি 2616 বিভাগ 1.4, 4.5 এবং 4.3 থেকে উদ্ধৃত:
request chain --------------------------------------> UA -----v----- A -----v----- B -----v----- C -----v----- O <------------------------------------- response chain
উপরের চিত্রটি ব্যবহারকারী এজেন্ট এবং উত্স সার্ভারের মধ্যে তিনটি মধ্যস্থতাকারী (এ, বি এবং সি) দেখায়। একটি অনুরোধ বা প্রতিক্রিয়া বার্তা যা পুরো চেইনে ভ্রমণ করে চারটি পৃথক সংযোগের মধ্য দিয়ে যাবে।
কয়েকটি শিরোলেখ ক্ষেত্র রয়েছে যা উভয়ই অনুরোধ এবং প্রতিক্রিয়া বার্তাগুলির জন্য সাধারণ প্রয়োগযোগ্যতা রয়েছে তবে এগুলি সত্তা স্থানান্তরিত হওয়ার ক্ষেত্রে প্রযোজ্য নয় । এই শিরোলেখ ক্ষেত্রগুলি কেবল প্রেরিত বার্তায় প্রযোজ্য ।
স্থানান্তর-এনকোডিং অবশ্যই বার্তাটির নিরাপদ এবং যথাযথ স্থানান্তর নিশ্চিত করতে কোনও অ্যাপ্লিকেশন প্রয়োগ করা কোনও ট্রান্সফার-কোডিং নির্দেশ করতে প্রয়োজন। ট্রান্সফার-এনকোডিং হ'ল বার্তাটির একটি সম্পত্তি, সত্তার নয়, এবং অনুরোধ / প্রতিক্রিয়া শৃঙ্খলে কোনও অ্যাপ্লিকেশন দ্বারা যুক্ত বা অপসারণ করা যেতে পারে।
message-body = Transfer-Encoding( Content-Encoding(entity-body) )
যেখানে Transfer-Encoding
"খণ্ডিত" হতে পারে যার অর্থ বার্তাটি কীভাবে স্থানান্তর করা যায় এবং "জিজিপ" হতে পারে যা সত্তাকে Content-Encoding
কীভাবে সংকোচন করতে হয়।
HTTP একটি প্রোটোকল যা কোনও নেটওয়ার্কের মাধ্যমে দূরবর্তী মেশিন থেকে তথ্য অ্যাক্সেস করার সময় পরিলক্ষিত হয়। সাধারণত নেটওয়ার্কটি ইন্টারনেট এবং রিমোট মেশিনটি একটি সার্ভার।
আপনি যখন ব্যক্তি A থেকে ব্যক্তি বিতে তথ্য জিজ্ঞাসা করেন, আপনি তাকে একটি বার্তা দেন। (অনুরোধ)। ব্যক্তি বি আপনাকে উত্তর দেয় (প্রতিক্রিয়া)। অনুরোধ এবং প্রতিক্রিয়া হ'ল এইচটিটিপি বার্তার প্রকার।
ব্যক্তি এ, তথ্য চাওয়ার পরিবর্তে ব্যক্তি বি কে কিছু করার জন্য বলতে পারেন। বলুন, ব্যক্তি এ ব্যক্তি বি চায় একটি নিরাপদ স্থানে একটি ফাইল সঞ্চয় করতে। সুতরাং, ব্যক্তি এ ফাইলটি (এইচটিটিপি সত্তা) ব্যক্তি বিতে পাস করে এবং তাকে কিছু করতে বলুন (HTTP বার্তা) Message এই ক্ষেত্রে, ব্যক্তি একটি "সত্তা" পাস করছে। এইচটিটিপি সত্তার প্রসঙ্গে, এটি বার্তার সাথে যুক্ত একটি পেডলোড।
আশা করি উপমাটি সাহায্য করবে।
@ হককি-পার্কারের মন্তব্যে যেমন বলা হয়েছে, দেখে মনে হচ্ছে সত্তাকে অবমূল্যায়িত করা হয়েছে। এই 2014 আরএফসিতে একটি অনুসন্ধান করুন , এবং আপনি এক্সএমএল সত্ত্বা এবং বার্তা বডি সম্পর্কে দেখতে পাবেন তবে এইচটিপিপি সত্তা সম্পর্কে কিছুই নয়।
তবুও, জ্যাকআরএসএস ক্লায়েন্ট এইচটিপিপিলেট, তবে একটি পদ্ধতি setEntity()
এবং getEntity()
পদ্ধতি রয়েছে।
গৃহীত উত্তর বিবেচনা করে, দুটি গ্রন্থাগারই ভুল! HttpClient.setEntity()
পূর্বে সেট শিরোলেখগুলি সরান না।
HttpEntity
আপনি যা অনুরোধে যাচ্ছেন (শিরোনাম সহ) এবং আপনি প্রতিক্রিয়াতে কী পাচ্ছেন গেট রিকোয়েস্টের জন্য আমরা সরল স্ট্রিং পাস করছি
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
HttpEntity<String> entity = new HttpEntity<String>(headers);
পোস্টের জন্য আমরা সম্পূর্ণ সত্তা শ্রেণি পাস করতে যাচ্ছি
public String createProducts(@RequestBody Product product) {
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
HttpEntity<Product> entity = new HttpEntity<Product>(product,headers);
return restTemplate.exchange(
"http://localhost:8080/products", HttpMethod.POST, entity, String.class
).getBody();
}
সত্তা একটি বার্তার মতো কিছু, এতে শিরোনাম থাকে, যেখানে মেটাডেটা যেমন অবস্থান, ল্যাং, এনকোডিং ...
এবং bodyচ্ছিকভাবে কোনও শরীরের - এটি শিরোনামে বর্ণিত হিসাবে এটি সামগ্রী ফর্ম্যাট করা হয়
ভাল উত্তর এখানে যে আমরা মধ্যে আমি বিশ্বাস করি যে যা সরাসরি থেকে আসে উল্লেখ কিছু মূল্য বোঝায় যা RFC 2616 (হাইপারটেক্সট ট্রান্সফার প্রোটোকল - HTTP- র / 1.1) :
সত্তা
অনুরোধ এবং প্রতিক্রিয়া বার্তাগুলি অনুরোধ পদ্ধতি বা প্রতিক্রিয়া স্থিতি কোড দ্বারা অন্যথায় সীমাবদ্ধ না থাকলে কোনও সত্তা স্থানান্তর করতে পারে। একটি সত্তা সত্তা-শিরোনাম ক্ষেত্র এবং একটি সত্তা-শরীর নিয়ে গঠিত , যদিও কিছু প্রতিক্রিয়া কেবল সত্তা-শিরোনাম অন্তর্ভুক্ত করবে।
সংক্ষেপে: একটি সত্তা স্থানান্তরিত হতে পারে এবং এটি শিরোনাম + বডি বা কেবল শিরোনাম হতে পারে ।
যেহেতু উপরের লিঙ্কটি রয়েছে তাই আমি অতিরিক্ত মন্তব্য করার ক্ষেত্রে নিজেকে আটকে রাখি।