"హాయ్, అమిగో!"

"హాయ్, బిలాబో!"

"ఈరోజు ఏ కొత్త విషయం చెబుతావు?"

"చాలా విషయాలు. కానీ ప్రారంభించడానికి, మేము నెట్‌వర్క్ మరియు ఇంటర్నెట్‌తో పని చేయడం గురించి చర్చిస్తాము. ఆసక్తి ఉందా?"

"అవును. గెలాక్సీ ఇంటర్నెట్ చాలా బాగుంది."

"సరే, అయితే కొంత చరిత్రతో ప్రారంభిద్దాం. 21వ శతాబ్దం ప్రారంభంలో, పరిస్థితి ఇలా ఉంది..."

"ఇంటర్నెట్‌కి కనెక్ట్ చేయబడిన ప్రతి కంప్యూటర్‌కు ఒక ప్రత్యేక సంఖ్య ఉంటుంది. ఇది సాధారణ 4-బైట్ నంబర్. దీనిని IP చిరునామా అంటారు."

"కానీ మానవులకు జ్ఞాపకశక్తి తక్కువగా ఉంటుంది మరియు 2108458776 వంటి వాటిని గుర్తుంచుకోవడానికి కష్టపడతారు, కాబట్టి వారు తరచుగా ప్రతి బైట్‌ను విడిగా వ్రాస్తారు."

"మనం నాలుగు-బైట్ సంఖ్య 2108458776ని ప్రత్యేక బైట్‌లుగా విభజించినట్లయితే, మనకు 125.172.135.24 వస్తుంది. మీరు గుర్తుచేసుకున్నట్లుగా, ప్రతి బైట్ 8 బిట్‌లను కలిగి ఉంటుంది మరియు 0 నుండి 255 వరకు సంఖ్యలను కలిగి ఉంటుంది."

"కాబట్టి, మనం సంఖ్యను ఎలా వ్రాస్తాము?"

"అవును. ఈ విధంగా వ్రాసినప్పుడు నాలుగు-బైట్ సంఖ్యలను గుర్తుంచుకోవడం (మానవులకు) చాలా సులభం."

"ఇది జరిగినప్పుడు, కేవలం 4 బైట్‌లను మాత్రమే ఉపయోగించాలనే ఎంపిక త్వరలో వాటిపై క్రూరమైన ట్రిక్ ప్లే చేసింది. ఇంటర్నెట్‌కి కనెక్ట్ చేయబడిన పరికరాల సంఖ్య చాలా త్వరగా పెరిగింది కాబట్టి వాటి సంఖ్యలు త్వరగా అయిపోయాయి."

"వారు దాని చుట్టూ ఎలా వచ్చారు?"

"మానవులు సాధారణంగా చేసే పనిని వారు చేసారు."

"వారు IP చిరునామాల కోసం కొత్త ప్రమాణంతో ముందుకు వచ్చారు మరియు దానికి IPv6 అని పేరు పెట్టారు."

"ఒక ప్రత్యేక సంఖ్యను రూపొందించడానికి 4 బైట్‌లను ఉపయోగించే సాధారణ IP చిరునామా (IPv4 అని పిలుస్తారు) కాకుండా, కొత్త ప్రమాణం 16ని ఉపయోగిస్తుంది."

"ఒక్కసారి ఆలోచించండి, మానవులు సాధారణ సంఖ్యలో (2108458776 వంటి) 10 అంకెలను గుర్తుంచుకోలేరు, కాబట్టి వారు వాటిని 4 భాగాలుగా విభజించవలసి వచ్చింది, కానీ వారు 16 బైట్‌లతో కూడిన సంఖ్యలను ఉపయోగించాలని భావించారు."

"అవును, కొన్నిసార్లు మనుషులు విచిత్రంగా ఉంటారు."

"అవును. మనుషులు మనుషులే."

"అంటే, వారు తమ కష్టాల నుండి బయటపడ్డారు."

"వారు సంఖ్యలను గుర్తుంచుకోవడంలో విసిగిపోయారు మరియు వాటిని పదాలతో భర్తీ చేయాలని నిర్ణయించుకున్నారు."

"అదెలా ఉంది? మీరు నాకు ఒక ఉదాహరణ చెప్పగలరా?"

"అయితే, web.mail.com , google.com , new.books.amazon.com , ..."

"ఈ విధమైన పేరును డొమైన్ అంటారు."

"ఈ ఇంటర్నెట్ సరిగ్గా పని చేయడానికి, వారు ప్రతి డొమైన్ పేరు యొక్క IP చిరునామాను నిల్వ చేసే డొమైన్ నేమ్ సిస్టమ్ (DNS) అనే ప్రత్యేక పట్టికను సృష్టించారు."

"ఇది ఎలా పని చేస్తుందో ఇక్కడ ఉంది."

1)  వినియోగదారు బ్రౌజర్‌లో చిరునామాను నమోదు చేస్తారు, ఉదాహరణకు, web.mail.com .

2)  బ్రౌజర్ DNSని యాక్సెస్ చేస్తుంది మరియు IP చిరునామాను పొందడానికి డొమైన్ పేరును ఉపయోగిస్తుంది.

3)  అవసరమైన URLతో కూడిన అభ్యర్థన ఈ IP చిరునామాకు పంపబడుతుంది.

"ఇది చాలా సరళంగా కనిపించడం లేదు."

"కానీ ఈ విధానం అనేక ప్రయోజనాలను కలిగి ఉంది:"

" 1) మనుష్యులు మౌఖికంగా చెప్పగలిగే పేర్లను గుర్తుంచుకోవడం సులభం."

" 2) పేరు ప్రారంభంలో సబ్‌డొమైన్‌లను జోడించడం ద్వారా డొమైన్ పేర్లను క్రమానుగతంగా నిర్మించవచ్చు. సరిగ్గా జావాలో ప్యాకేజీ పేరు వలె."

" 3) మీరు వెబ్ సర్వర్ యొక్క IP చిరునామాను మార్చవలసి వస్తే, మీరు DNS రికార్డ్‌ను మాత్రమే మార్చాలి మరియు ప్రతిదీ మునుపటిలా పని చేస్తుంది - వినియోగదారులు కొత్త చిరునామాను గుర్తుంచుకోవలసిన అవసరం లేదు."

"DNS ఇలా కనిపిస్తుంది:"

డొమైన్ పేరు IP చిరునామా
mail.com 128.35.36.189
web.mail.com 145.12.17.13
new.mail.com 192.155.15.3
google.com 92.117.151.100
google.com 193.168.0.1
docs.google.com 217.12.222.1

"అర్థం అవుతుంది."

"ఏమైనప్పటికీ, డొమైన్ అనేది కంప్యూటర్ పేరు, కానీ మాకు కంప్యూటర్ అవసరం లేదు — కంప్యూటర్‌లో ఉన్నది మాకు అవసరం. దీని కోసం URLలు ఉంటాయి."

"ప్రారంభంలో, URL నిజానికి మరొక కంప్యూటర్‌లోని ఫైల్‌కి లింక్. ఉదాహరణకు:"

ఉదాహరణ
http :// info.codegym.cc / user/info/profile.html
వివరణ
http  అనేది క్లయింట్-సర్వర్ కమ్యూనికేషన్ కోసం ప్రోటోకాల్
info.codegym.cc  అనేది కంప్యూటర్ డొమైన్ పేరు
user/info/profile.html  అనేది కంప్యూటర్‌లోని ఫైల్‌కి మార్గం

"నెట్‌వర్క్ అభివృద్ధి ప్రారంభంలో, వెబ్ సర్వర్ ఎక్కడో నిల్వ చేస్తున్న ఫైల్‌లను అందించడానికి URLని మాత్రమే ఉపయోగించగలిగింది. URL వాస్తవానికి ఫైల్‌కి ప్రపంచ మార్గం: కంప్యూటర్ పేరు + మార్గం."

"తరువాత, వెబ్ సర్వర్‌లు స్వయంగా ఫైల్‌లను రూపొందించడం ప్రారంభించినప్పుడు, URLలు కొద్దిగా మారాయి మరియు వెబ్ సర్వర్‌కు అభ్యర్థనగా మారాయి. అభ్యర్థన పారామీటర్‌లు కూడా జోడించబడ్డాయి."

"ఈరోజు URL చివరిలో ఫైల్ పొడిగింపును చూడటం చాలా అరుదు. "ఆధునిక URL అనేది పారామితులతో కూడిన ఏకైక లింక్. గ్లోబల్ ఫైల్ పాత్ కంటే మెథడ్ కాల్ లాగా ఉంటుంది."

"ఒక క్లాసిక్ ఆధునిక URL ఇలా కనిపిస్తుంది:"

URLని అన్వయించడం
http :// codegym.cc / alpha/api/contacts ? userid=13&filter=nene&page=3
URL యొక్క భాగాల వివరణ
codegym.cc  అనేది డొమైన్ పేరు — ఇంటర్నెట్‌లో కంప్యూటర్ యొక్క ప్రత్యేక పేరు (చిరునామా).
http  అనేది క్లయింట్-సర్వర్ కమ్యూనికేషన్ కోసం ప్రోటోకాల్
alpha/api/contacts  అనేది వెబ్ సర్వర్ అభ్యర్థన లేదా సర్వర్‌లో వెబ్‌పేజీ కోసం అభ్యర్థన
userid=13 & filter=none & page=3  అనేది అభ్యర్థన పారామితులతో కూడిన స్ట్రింగ్

"అవును, నాకు గుర్తుంది. మీరు ఇటీవల URLల గురించి నాకు చెప్పారు."

"మరియు పోర్టుల గురించి కూడా. మీరు అపార్ట్మెంట్ భవనం యొక్క ఉదాహరణను ఉపయోగించారు."

"http' అంటే ఏమిటో నాకు చెప్పడం మంచిది. నేను ప్రతిచోటా 'ప్రోటోకాల్' అని వ్రాసి ఉండటం చూస్తాను, కానీ అది ఏమిటో నాకు స్పష్టంగా తెలియదు."

"సరే. ఇంకేం మాట్లాడకుండా చెప్తాను."

IP చిరునామా, డొమైన్, URL - 1

" HTTP అంటే H yper T ext T ransport P రోటోకాల్ మరియు ఇది హైపర్‌టెక్స్ట్‌ని బదిలీ చేయడం."

"హైపర్‌టెక్స్ట్ అంటే ఏమిటి?"

"ఇది HTML."

"సుమారుగా చెప్పాలంటే, ప్రోటోకాల్ అనేది కమ్యూనికేషన్ కోసం నియమాల సమితి. ఇది వెబ్ సర్వర్‌కు పంపబడే అభ్యర్థనలను మరియు ఏ ఫార్మాట్‌లో అలాగే వెబ్ సర్వర్ ఎలా ప్రతిస్పందించాలో వివరిస్తుంది."

"సంక్షిప్తంగా, పరిస్థితి ఇది. సాధారణ టెక్స్ట్ ఫైల్‌లు లేదా, మీకు కావాలంటే, క్లయింట్ మరియు సర్వర్ మధ్య పెద్ద పెద్ద టెక్స్ట్ భాగాలు పంపబడతాయి. "

" సర్వర్‌కి ఒక అభ్యర్థన వస్తుంది మరియు సర్వర్ ప్రతి అభ్యర్థనకు ప్రతిస్పందనను అందిస్తుంది."

"అటువంటి అభ్యర్థన మరియు ప్రతిస్పందనకు ఉదాహరణలు ఇక్కడ ఉన్నాయి:"

అభ్యర్థన
GET alpha/api/contacts HTTP/1.1
Host: codegym.cc
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en; rv:1.9b5) Gecko/2008050509 Firefox/3.0b5
Accept: text/html
Connection: close
వివరణ
GET – request subtype
alpha/api/contacts – request to the web server
HTTP/1.1 – protocol version – HTTP/1.1
Host: codegym.cc – domain name
User-Agent: Mozilla/5… – unique browser name
Accept: text/html – requested document type: HTML
Connection: close – close the server connection after processing the request.

"మొదటి పంక్తి అసలైన అభ్యర్థన. తదుపరిది అదనపు అభ్యర్థన పారామితులు, వీటిని 'హెడర్ ఫీల్డ్‌లు' అని కూడా పిలుస్తారు."

"మరియు ఇక్కడ ప్రతిస్పందనకు ఉదాహరణ:"

ప్రతిస్పందన
HTTP/1.1 200 OK
Date: Wed, 11 Feb 2009 11:20:59 GMT
Server: Apache
X-Powered-By: PHP/5.2.4-2ubuntu5wm1
Last-Modified: Wed, 11 Feb 2009 11:20:59 GMT
Content-Language: en
Content-Type: text/html; charset=utf-8
Content-Length: 1234
Connection: close
<html><body><a href="http://ample.com/about.html#contacts">Click here</a></body></html>
HTTP/1.1 200 OK - «200 OK» means everything is okay.
Date: Wed, 11 Feb 2009 - Date on which the request was processed
Server: Apache - Name of the web server
X-Powered-By: PHP - The server uses PHP
Last-Modified: Wed, 11 Feb 2009 - The time of the last update of the requested file
Content-Language: en - The language of the file
Content-Type: text/html; charset=utf-8 – This is an HTML-file with UTF-8 encoding
Content-Length: 1234 - The response is 1234 bytes long
Connection: close - The connection will be closed after the request is handled
<html><body><a href="http://ample - The HTML file itself.

"నేను రెండు విషయాలపై మీ దృష్టిని ఆకర్షించాలనుకుంటున్నాను:"

"మొదట, మీరు ఏమి అభ్యర్థించినప్పటికీ, ఇది సర్వర్‌కి ఫైల్ అభ్యర్థన వలె కనిపిస్తుంది. ఫైల్ సర్వర్‌లో ఉందా లేదా అభ్యర్థనకు ప్రతిస్పందనగా సర్వర్ దానిని ఉత్పత్తి చేస్తుందా అనేది పట్టింపు లేదు."

"రెండవది, ఫైల్ కూడా HTTP ప్రతిస్పందనలో భాగంగా పంపబడుతుంది . మరో మాటలో చెప్పాలంటే, సర్వర్ ప్రతిస్పందన ప్రారంభంలో మేము కొంత అదనపు డేటాను చూస్తాము, ఆపై ఫైల్ యొక్క శరీరం అందించబడుతుంది. "

"ఎంత ఇంటరెస్టింగ్! నాకు అన్నీ అర్థమయ్యాయో లేదో నాకు తెలియదు. నేను దీన్ని తర్వాత మళ్ళీ చదువుతాను."

"ఓహ్, నేను మీకు మరొక చిన్న, కానీ ఆసక్తికరమైన విషయం గురించి చెప్పాలనుకుంటున్నాను: కుక్కీలు."

"అవి ఏమిటి?"

"HTTP ప్రోటోకాల్ ప్రకారం, కుకీలు క్లయింట్‌లో నిల్వ చేయడానికి క్లయింట్‌కు సర్వర్ పంపే చిన్న సమాచారం. మరియు అవి తదుపరి అభ్యర్థనలలో భాగంగా సర్వర్‌కు తిరిగి పంపబడతాయి. "

"మరి దాని ప్రయోజనం ఏమిటి?"

"ఒక వినియోగదారు వెబ్‌సైట్ హోమ్ పేజీలో సైన్ ఇన్ చేశారనుకుందాం. సర్వర్ ఈ వినియోగదారు కోసం సర్వర్‌లో సెషన్ ఆబ్జెక్ట్‌ను సృష్టిస్తుంది మరియు ఒక ప్రత్యేక సెషన్ నంబర్ క్లయింట్‌కు కుక్కీగా పంపబడుతుంది. క్లయింట్ నుండి తదుపరి అభ్యర్థన సమయంలో సర్వర్, ఈ సెషన్ నంబర్, ఇతర కుక్కీలతో కలిపి, సర్వర్‌కి తిరిగి పంపబడుతుంది. దీని అర్థం సర్వర్ కొత్త అభ్యర్థనను పంపిన వినియోగదారుని గుర్తించగలదని అర్థం."

"ఎంత ఆసక్తికరంగా!"

"అవును. మీరు మీ స్వంత సర్వ్‌లెట్‌లను వ్రాసినప్పుడు, మేము ఈ అంశాన్ని నిశితంగా పరిశీలిస్తాము. అయితే ప్రస్తుతానికి, విరామం తీసుకుందాం."

"మీరు ఏమి చెప్పినప్పటికీ."