এইচটিটিপি সত্তাটি আসলে কী?


114

কেউ দয়া করে আমাকে এইচটিটিপি সত্তা কী তা বর্ণনা করতে পারেন ?

আমি এইচটিটিপি ক্লায়েন্ট ডকুমেন্টেশন পড়ছি, তবে আমি আসলে বুঝতে পারি না এর অর্থ কী?


2
আমি এই লেখাটি এখানে এইচটিটিপি: এইচটিটিপি: প্রোটোকল প্রত্যেক ওয়েব বিকাশকারীকে অবশ্যই জানতে হবে যে অন্য কেউ যদি এখানে এসে বিষয়টির বিষয়ে তথ্য খুঁজছেন।
ম্যাসন 240

2
নোট করুন যে "HTTP সত্তা" শব্দটি সর্বশেষতম HTTP 1.1 স্পেসিফিকেশনে প্রদর্শিত হবে না । দেখে মনে হচ্ছে এটি হ্রাস করা হয়েছে। এখন আমরা কেবলমাত্র "শিরোলেখ ক্ষেত্র" এবং "বার্তা দেহ" ব্যবহার করতে পারি।
হক্কে পার্কার

উত্তর:


139

একটি 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
@ ইম্রাই: &একটি এইচটিএমএল চরিত্রের সত্তার রেফারেন্স , কোনও এইচটিটিপি সত্তার মতো নয় ।
maerics

2
@ লমরে: এগুলি সম্পূর্ণ আলাদা সত্ত্বা। ;) (একটি হ'ল এইচটিএমএল পাঠ্যে এনকোডিং স্ট্রিং সম্পর্কে , অন্যটি হ'ল এইচটিটিপি প্রোটোকলের মাধ্যমে যখন একটি ব্রাউজার এবং একটি সার্ভার একে অপরের সাথে কথা বলে থাকে তখন তথ্য কাঠামো সম্পর্কে । ও)
জেড

6
নোট করুন যে "HTTP সত্তা" শব্দটি সর্বশেষতম HTTP 1.1 স্পেসিফিকেশনে প্রদর্শিত হবে না । দেখে মনে হচ্ছে এটি হ্রাস করা হয়েছে। এখন আমরা কেবল "শিরোলেখ ক্ষেত্র" এবং "বার্তা বডি" দিয়ে আটকে রাখতে পারি।
হক্কে পার্কার

15

এখানে 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কীভাবে সংকোচন করতে হয়।


বাহ, সত্তা এবং বার্তার মধ্যে "পার্ট-পুরো" সম্পর্ক স্পষ্ট করার জন্য ধন্যবাদ! বাকী কিন্ডা বিভ্রান্তি যোগ করে, তবে সামগ্রিকভাবে, এখনও একটি উত্সাহ মূল্য। চিয়ার্স!
জেড

12

এটি একটি বিমূর্তি যা একটি অনুরোধ বা প্রতিক্রিয়া পেইডের প্রতিনিধিত্ব করেJavaDoc তার উদ্দেশ্য এবং বিভিন্ন সত্তা ধরনের স্পষ্ট।


3
এটিকে "পেলোড" বলার জন্য +1, যা অবশেষে সেই অকার্যকর শর্তে ("সত্তা") কিছু অর্থ যুক্ত করে।
জেড


2

HTTP একটি প্রোটোকল যা কোনও নেটওয়ার্কের মাধ্যমে দূরবর্তী মেশিন থেকে তথ্য অ্যাক্সেস করার সময় পরিলক্ষিত হয়। সাধারণত নেটওয়ার্কটি ইন্টারনেট এবং রিমোট মেশিনটি একটি সার্ভার।

আপনি যখন ব্যক্তি A থেকে ব্যক্তি বিতে তথ্য জিজ্ঞাসা করেন, আপনি তাকে একটি বার্তা দেন। (অনুরোধ)। ব্যক্তি বি আপনাকে উত্তর দেয় (প্রতিক্রিয়া)। অনুরোধ এবং প্রতিক্রিয়া হ'ল এইচটিটিপি বার্তার প্রকার।

ব্যক্তি এ, তথ্য চাওয়ার পরিবর্তে ব্যক্তি বি কে কিছু করার জন্য বলতে পারেন। বলুন, ব্যক্তি এ ব্যক্তি বি চায় একটি নিরাপদ স্থানে একটি ফাইল সঞ্চয় করতে। সুতরাং, ব্যক্তি এ ফাইলটি (এইচটিটিপি সত্তা) ব্যক্তি বিতে পাস করে এবং তাকে কিছু করতে বলুন (HTTP বার্তা) Message এই ক্ষেত্রে, ব্যক্তি একটি "সত্তা" পাস করছে। এইচটিটিপি সত্তার প্রসঙ্গে, এটি বার্তার সাথে যুক্ত একটি পেডলোড।

আশা করি উপমাটি সাহায্য করবে।


2

@ হককি-পার্কারের মন্তব্যে যেমন বলা হয়েছে, দেখে মনে হচ্ছে সত্তাকে অবমূল্যায়িত করা হয়েছে। এই 2014 আরএফসিতে একটি অনুসন্ধান করুন , এবং আপনি এক্সএমএল সত্ত্বা এবং বার্তা বডি সম্পর্কে দেখতে পাবেন তবে এইচটিপিপি সত্তা সম্পর্কে কিছুই নয়।

তবুও, জ্যাকআরএসএস ক্লায়েন্ট এইচটিপিপিলেট, তবে একটি পদ্ধতি setEntity()এবং getEntity()পদ্ধতি রয়েছে।

গৃহীত উত্তর বিবেচনা করে, দুটি গ্রন্থাগারই ভুল! HttpClient.setEntity()পূর্বে সেট শিরোলেখগুলি সরান না।


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

1

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();
}

0

সত্তা একটি বার্তার মতো কিছু, এতে শিরোনাম থাকে, যেখানে মেটাডেটা যেমন অবস্থান, ল্যাং, এনকোডিং ...

এবং bodyচ্ছিকভাবে কোনও শরীরের - এটি শিরোনামে বর্ণিত হিসাবে এটি সামগ্রী ফর্ম্যাট করা হয়


0

ভাল উত্তর এখানে যে আমরা মধ্যে আমি বিশ্বাস করি যে যা সরাসরি থেকে আসে উল্লেখ কিছু মূল্য বোঝায় যা RFC 2616 (হাইপারটেক্সট ট্রান্সফার প্রোটোকল - HTTP- র / 1.1) :

সত্তা

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

সংক্ষেপে: একটি সত্তা স্থানান্তরিত হতে পারে এবং এটি শিরোনাম + বডি বা কেবল শিরোনাম হতে পারে

যেহেতু উপরের লিঙ্কটি রয়েছে তাই আমি অতিরিক্ত মন্তব্য করার ক্ষেত্রে নিজেকে আটকে রাখি।

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