இந்த பொருள் "நிறுவன மேம்பாட்டிற்கான அறிமுகம்" தொடரின் ஒரு பகுதியாகும். முந்தைய கட்டுரைகள்: பகுதி 3. HTTP/HTTPS - 1வணக்கம்! இன்று நாம் HTTP மற்றும் HTTPS நெறிமுறைகளைப் பற்றி அறிந்து கொள்வோம். ஆனால் முதலில், ஒரு விஷயத்தை தெளிவுபடுத்துவோம்: OSI மாதிரியின் பயன்பாட்டு மட்டத்தில் நெட்வொர்க்கில் தரவை அனுப்புவதற்கான நெறிமுறைகளைப் பற்றி பேசுகிறோம். முந்தைய கட்டுரைகளில் ஒன்றில் OSI மாதிரியை நாங்கள் அறிந்தோம் என்பது உங்களுக்கு நினைவிருக்கலாம். உங்களுக்கு அது நினைவில் இல்லை என்றால், அது இங்கே உள்ளது .

தரவுத் தொடர்பு நெறிமுறை என்றால் என்ன?

வெவ்வேறு சேவைகளின் டெவலப்பர்கள் மற்றவர்கள் புரிந்துகொள்ளக்கூடிய வடிவத்தில் தகவல்களை அனுப்ப அனுமதிக்கும் ஒப்புக்கொள்ளப்பட்ட விதிகளின் தொகுப்பு என்று இதை நாங்கள் அழைக்கிறோம். எடுத்துக்காட்டாக, பேஸ்புக் மற்றும் ட்விட்டர் இரண்டிலிருந்தும் தகவலைப் பெற நீங்கள் Google Chrome ஐப் பயன்படுத்தலாம், ஏனெனில் டெவலப்பர்கள் நிலையான HTTP நெறிமுறையைப் பயன்படுத்தி அதை அனுப்புகிறார்கள், இது உங்கள் உலாவியைச் செயலாக்க அனுமதிக்கிறது. சர்வர் பகுதியை உருவாக்கும் அனைவருக்கும் ஒரே மாதிரியான விதிகள் மிகவும் வசதியானவை: உங்களுக்கான தகவலை மாற்றக்கூடிய மற்றும் பொருத்தமான நெறிமுறையைப் பயன்படுத்தி அனுப்பக்கூடிய நிறைய நூலகங்கள் உள்ளன. HTTP ஆரம்பத்தில் HTML பக்கங்களை அனுப்புவதற்கான ஒரு நெறிமுறையாகக் கருதப்பட்டது. இது நீண்ட காலமாக பயன்படுத்தப்பட்ட முறை, ஆனால் இப்போது புரோகிராமர்கள் சரம் மற்றும் மீடியா கோப்புகளை அனுப்ப இதைப் பயன்படுத்துகின்றனர். பொதுவாக, இந்த நெறிமுறை உலகளாவிய ரீதியில் ஏற்றுக்கொள்ளப்பட்டது மற்றும் பல்துறை, மேலும் இது பயன்படுத்த மிகவும் எளிதானது. இப்போது அதை எவ்வாறு பயன்படுத்துவது என்று ஆராய்வோம்.

HTTP இன் அமைப்பு

HTTP நெறிமுறை உரையை மட்டுமே கொண்டுள்ளது என்பதை நாம் இப்போதே கவனிக்க வேண்டும். இந்த உரையின் அமைப்பு நமக்கு மிகவும் ஆர்வமாக உள்ளது. ஒவ்வொரு செய்தியும் மூன்று பகுதிகளைக் கொண்டுள்ளது:
  1. தொடக்க வரி - இது சில வீட்டு பராமரிப்பு தரவை வரையறுக்கிறது.
  2. தலைப்புகள் - இவை செய்தி அளவுருக்களை விவரிக்கின்றன.
  3. உடல் - இது செய்தியின் உள்ளடக்கம். உடல் தலைப்புகளில் இருந்து வெற்று கோடு மூலம் பிரிக்கப்பட வேண்டும்.
HTTP நெறிமுறை சேவையகத்திற்கு கோரிக்கைகளை அனுப்பவும், சேவையகத்திலிருந்து பதில்களைப் பெறவும் பயன்படுகிறது. கோரிக்கைகள் மற்றும் பதில்களின் அளவுருக்கள் சற்று வேறுபட்டவை.

எளிய HTTP கோரிக்கை எப்படி இருக்கும் என்பது இங்கே:


GET / HTTP/1.1
Host: codegym.cc
User-Agent: firefox/5.0 (Linux; Debian 5.0.8; en-US; rv:1.8.1.7)
தொடக்க வரி குறிக்கிறது:
  • GET - கோரிக்கையின் முறை
  • / - கோரிக்கையின் பாதை
  • HTTP/1.1 — நெறிமுறை பதிப்பு
பின்னர் தலைப்புகள் வருக:
  • புரவலன் - கோரிக்கை உரையாற்றப்படும் ஹோஸ்ட்
  • பயனர் முகவர் - கோரிக்கையை அனுப்பும் வாடிக்கையாளர்
செய்தி உள்ளடக்கம் இல்லை. HTTP கோரிக்கையில், தொடக்க வரி மற்றும் "ஹோஸ்ட்" தலைப்பு மட்டுமே தேவை. இப்போது எல்லாவற்றையும் ஒரு படியாகப் பார்ப்போம். HTTP கோரிக்கையில் சில முறைகள் இருக்க வேண்டும். அவற்றில் ஒன்பது உள்ளன: GET, POST, PUT, OPTIONS, HEAD, PATCH, DELETE, TRACE, CONNECT. மிகவும் பொதுவானது GET மற்றும் POST ஆகும். இந்த இரண்டு முறைகளும் முதலில் போதுமானதாக இருக்கும். GET - இந்த முறை சேவையகத்திலிருந்து உள்ளடக்கத்தைக் கோருகிறது. அதன்படி, GET முறையுடனான கோரிக்கைகளுக்கு செய்தி உள்ளடக்கம் இல்லை. ஆனால் உங்களுக்கு தேவைப்பட்டால், பின்வரும் வடிவத்தில் பாதை வழியாக (தொடக்க வரியில்) அளவுருக்களை அனுப்பலாம்:

https://cdn.codegym.cc/images/article/155cea79-acfd-4968-9361-ad585e939b82/original.pngsend?name1=value1&name2=value2
codegym.cc ஹோஸ்ட் எங்கே , /send என்பது கோரிக்கையின் பாதை, மற்றும் ? வினவல் அளவுருக்கள் பின்பற்றப்படுவதைக் குறிக்கும் பிரிப்பானாகும். முடிவில், முக்கிய மதிப்பு ஜோடிகள் ("கீ=மதிப்பு") பட்டியலிடப்பட்டு, ஒரு ஆம்பர்சண்ட் மூலம் பிரிக்கப்படுகின்றன. POST - இந்த முறை சர்வரில் தகவலை வெளியிடுகிறது. ஒரு POST கோரிக்கையானது பல்வேறு வகையான தகவல்களை அனுப்பலாம்: அளவுருக்கள் "key=value" ஜோடிகள், JSON, HTML குறியீடு அல்லது கோப்புகள். அனைத்து தகவல்களும் செய்தியின் உடலில் அனுப்பப்படுகின்றன. உதாரணத்திற்கு:

POST /user/create/json HTTP/1.1
Accept: application/json
Content-Type: application/json
Content-Length: 28
Host: codegym.cc

{
  "Id": 12345,
  "User": "John"
}
கோரிக்கை codegym.cc/user/create/json க்கு அனுப்பப்பட்டது, மேலும் நெறிமுறை பதிப்பு HTTP/1.1 ஆகும். "ஏற்றுக்கொள்" என்பது வாடிக்கையாளர் பெற எதிர்பார்க்கும் மறுமொழி வடிவமைப்பைக் குறிக்கிறது. "உள்ளடக்க வகை" என்பது கோரிக்கையில் அனுப்பப்பட்ட செய்தி அமைப்பின் வடிவமைப்பைக் குறிக்கிறது. "உள்ளடக்கம்-நீளம்" என்பது உடலில் உள்ள எழுத்துக்களின் எண்ணிக்கை. ஒரு HTTP கோரிக்கையில் பல்வேறு தலைப்புகள் இருக்கலாம். மேலும் தகவலுக்கு, நெறிமுறையின் விவரக்குறிப்பைப் பார்க்கவும் .

HTTP பதில்கள்

கோரிக்கையைப் பெற்ற பிறகு, சேவையகம் அதைச் செயலாக்குகிறது மற்றும் கிளையண்டிற்கு ஒரு பதிலை அனுப்புகிறது:

HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Length: 98

<html>
  <head>
    <title>An Example Page</title>
  </head>
  <body>
    <p>Hello World</p>
  </body>
</html>
பதிலின் தொடக்க வரியில் நெறிமுறை பதிப்பு (HTTP/1.1), நிலைக் குறியீடு (200) மற்றும் நிலை விளக்கம் (சரி) ஆகியவை உள்ளன. அதன் தலைப்புகளில் உள்ளடக்கத்தின் வகை மற்றும் நீளம் ஆகியவை அடங்கும். உலாவி HTML பக்கமாக வழங்கும் HTML குறியீட்டை மறுமொழி அமைப்பு கொண்டுள்ளது.

பதில் நிலை குறியீடுகள்

செய்தி அமைப்பு மற்றும் தலைப்புகள் பற்றி எல்லாம் தெளிவாக உள்ளது, ஆனால் நிலைக் குறியீடுகளைப் பற்றி நாம் சில வார்த்தைகளைச் சொல்ல வேண்டும். பதில் நிலைக் குறியீடுகள் எப்போதும் மூன்று இலக்கங்களாக இருக்கும். குறியீட்டின் முதல் இலக்கமானது பதிலின் வகையைக் குறிக்கிறது:
  • 1xx - தகவல். கோரிக்கை பெறப்பட்டது. சேவையகம் தொடர தயாராக உள்ளது.
  • 2xx - வெற்றி. கோரிக்கை பெறப்பட்டது, புரிந்து கொள்ளப்பட்டது மற்றும் செயலாக்கப்பட்டது.
  • 3xx - திசைதிருப்பல். கோரிக்கையைச் செயல்படுத்த கூடுதல் நடவடிக்கைகள் செய்யப்பட வேண்டும்.
  • 4xx - கிளையன்ட் பிழை. கோரிக்கையில் பிழைகள் உள்ளன அல்லது நெறிமுறைக்கு இணங்கவில்லை.
  • 5xx - சர்வர் பிழை. கோரிக்கை சரியாக அமைக்கப்பட்டது, ஆனால் சர்வரால் அதைச் செயல்படுத்த முடியவில்லை.
குறியீட்டில் உள்ள இரண்டாவது மற்றும் மூன்றாவது இலக்கங்கள் இன்னும் குறிப்பிட்ட பதிலைக் குறிக்கின்றன. உதாரணத்திற்கு:
  • 200 சரி — கோரிக்கை பெறப்பட்டு வெற்றிகரமாக செயலாக்கப்பட்டது.
  • 201 உருவாக்கப்பட்டது - கோரிக்கை பெறப்பட்டு வெற்றிகரமாக செயலாக்கப்பட்டது, இதன் விளைவாக ஒரு புதிய ஆதாரம் அல்லது நிகழ்வு உருவாக்கப்பட்டது.
  • 301 நிரந்தரமாக நகர்த்தப்பட்டது - கோரப்பட்ட ஆதாரம் நிரந்தரமாக நகர்த்தப்பட்டது. அதற்கான அடுத்தடுத்த கோரிக்கைகள் புதிய முகவரியைப் பயன்படுத்தி செய்யப்பட வேண்டும்.
  • 307 தற்காலிக வழிமாற்று - ஆதாரம் தற்காலிகமாக நகர்த்தப்பட்டது. இப்போதைக்கு, தானியங்கி முன்னனுப்புதலைப் பயன்படுத்தி இதை அணுகலாம்.
  • 403 தடைசெய்யப்பட்டது - கோரிக்கை புரிந்து கொள்ளப்பட்டது, ஆனால் அங்கீகாரம் தேவை.
  • 404 கிடைக்கவில்லை - சேவையகம் இந்த முகவரியில் ஆதாரத்தைக் கண்டுபிடிக்கவில்லை.
  • 501 செயல்படுத்தப்படவில்லை - கோரிக்கைக்கு பதிலளிக்க தேவையான செயல்பாட்டை சேவையகம் ஆதரிக்கவில்லை.
  • 505 HTTP பதிப்பு ஆதரிக்கப்படவில்லை - HTTP நெறிமுறையின் குறிப்பிட்ட பதிப்பை சேவையகம் ஆதரிக்கவில்லை.
மறுமொழி நிலைக் குறியீட்டைத் தவிர, நிலை விளக்கமும் அனுப்பப்படும். ஒவ்வொரு குறிப்பிட்ட நிலைக்கும் என்ன அர்த்தம் என்பதை இது தெளிவுபடுத்த உதவுகிறது. HTTP நெறிமுறை மிகவும் நடைமுறைக்குரியது: இது அதிக எண்ணிக்கையிலான தலைப்புகளை வழங்குகிறது, நீங்கள் கிளையன்ட் மற்றும் சர்வர் இடையே மிகவும் நெகிழ்வான தகவல்தொடர்புகளை ஏற்பாடு செய்ய பயன்படுத்தலாம். அனைத்து கோரிக்கை மற்றும் பதில் தலைப்புகள், கோரிக்கை முறைகள் மற்றும் மறுமொழி நிலைக் குறியீடுகள் ஆகியவற்றை முழுமையாகக் கருத்தில் கொள்வது ஒரு கட்டுரைக்கு மிகவும் அதிகமாக இருக்கும். உங்களுக்குத் தேவைப்பட்டால், நெறிமுறையின் அதிகாரப்பூர்வ விவரக்குறிப்பைப் படிக்கலாம், இது அனைத்து நுணுக்கங்களையும் விவரிக்கிறது. போர்ட் 80 இல் HTTP நெறிமுறையைப் பயன்படுத்துவது வழக்கம், எனவே போர்ட் 80 உடன் முடிவடையும் URL ஐப் பார்க்கும்போது, ​​அதை அணுக HTTP ஐப் பயன்படுத்த வேண்டும் என்று நீங்கள் உறுதியாக நம்பலாம். தொழில்நுட்பம் உருவாகி, தனிப்பட்ட தரவு இணையத்தில் அனுப்பத் தொடங்கியதும், வாடிக்கையாளர் சேவையகத்திற்கு அனுப்பும் தகவல்களுக்கு கூடுதல் பாதுகாப்பை எவ்வாறு வழங்குவது என்பது பற்றி சிந்திக்க வேண்டியது அவசியம். இந்த சிந்தனையின் விளைவுதான் HTTPS நெறிமுறை.

HTTPS மற்றும் HTTP இடையே உள்ள வேறுபாடு

தொடரியல் அடிப்படையில், HTTPS ஆனது HTTP நெறிமுறைக்கு ஒத்ததாகும். அதாவது, அதே தொடக்கக் கோடுகள் மற்றும் தலைப்புகளைப் பயன்படுத்துகிறது. கூடுதல் குறியாக்கம் மற்றும் இயல்புநிலை போர்ட் (443) ஆகியவை மட்டுமே வேறுபாடுகள் . HTTPS ஆனது HTTP மற்றும் TCP இடையே, அதாவது பயன்பாடு மற்றும் போக்குவரத்து அடுக்குகளுக்கு இடையில் குறியாக்கம் செய்யப்படுகிறது. இதன் பொருள் என்ன என்பதை நீங்கள் மறந்துவிட்டால், OSI மாதிரியில் உள்ள கட்டுரையைப் பார்க்கவும் . இன்றைய குறியாக்க தரநிலை TLS ஆகும். இந்த தலைப்பில் நாங்கள் அதிகம் செல்ல மாட்டோம், ஆனால் தகவல் போக்குவரத்து அடுக்கை அடைவதற்கு முன்பு குறியாக்கம் நடக்கும் என்பதை நினைவில் கொள்ளுங்கள். HTTPS இல், கோரிக்கை அனுப்பப்பட்ட ஹோஸ்ட் மற்றும் போர்ட்டைத் தவிர அனைத்து தகவல்களும் குறியாக்கம் செய்யப்பட்டுள்ளன. HTTP க்குப் பதிலாக HTTPS நெறிமுறையைப் பயன்படுத்த சேவையகத்தை மாற்றுவது, சேவையகக் குறியீட்டை மாற்றுவதற்குப் பயன்படுத்த வேண்டியதில்லை. இந்த அம்சம் சர்வ்லெட் கன்டெய்னர்களில் இயக்கப்பட்டுள்ளது, அதை அடுத்த கட்டுரைகளில் விவாதிப்போம். இன்னைக்கு அவ்வளவுதான். உண்மையில், ஒரு கணம் காத்திருங்கள். சில HTTP கோரிக்கைகளைப் பெற, Google Chrome ஐத் திறந்து, F12 ஐ அழுத்தி, "நெட்வொர்க்" தாவலைத் தேர்ந்தெடுக்கவும். உங்கள் உலாவியில் அனுப்பப்பட்ட/பெறப்பட்ட அனைத்து கோரிக்கைகளும் பதில்களும் இங்கே காட்டப்படும். பகுதி 4. Maven இன் அடிப்படைகள் பகுதி 5. Servlets மற்றும் Java Servlet API. எளிய இணைய பயன்பாட்டை எழுதுதல் பகுதி 6. சர்வ்லெட் கொள்கலன்கள் பகுதி 7. MVC (மாடல்-வியூ-கண்ட்ரோலர்) வடிவத்தை அறிமுகப்படுத்துதல்