"Hi, Amigo!"
"Hi, Bilaabo!"
"Anong bagong bagay ang sasabihin mo sa akin ngayon?"
"Maraming bagay. But to start, I think we'll discuss working with a network and the Internet. Interested?"
"Yep. Super cool ang Galactic Internet."
"Okay, ngunit magsimula tayo sa ilang kasaysayan. Sa simula ng ika-21 siglo, ang sitwasyon ay ganito..."
"Ang bawat computer na konektado sa Internet ay may natatanging numero. Ito ay isang ordinaryong 4-byte na numero. Ito ay tinatawag na IP address."
"Ngunit ang mga tao ay may mahinang memorya at nahihirapang matandaan ang isang bagay tulad ng 2108458776, kaya madalas nilang isulat ang bawat byte nang hiwalay."
"Kung hatiin natin ang four-byte number na 2108458776 sa magkakahiwalay na byte, makakakuha tayo ng 125.172.135.24. Kung maaalala mo, ang bawat byte ay binubuo ng 8 bits at maaaring maglaman ng mga numero mula 0 hanggang 255."
"So, ganyan ang pagsusulat natin ng number?"
"Oo. Mas madali lang (para sa mga tao) na matandaan ang mga four-byte na numero kapag ito ay nakasulat sa ganitong paraan."
"Habang nangyari, ang pagpili na gumamit lamang ng 4 na byte sa lalong madaling panahon ay naglaro ng isang malupit na panlilinlang sa kanila. Ang bilang ng mga device na nakakonekta sa Internet ay mabilis na lumaki kaya hindi nagtagal ay naubusan sila ng mga numero."
"Paano nila nakayanan iyon?"
"Ginawa nila ang karaniwang ginagawa ng mga tao."
"Bumuo sila ng isang bagong pamantayan para sa mga IP address at buong pagmamalaki na pinangalanan itong IPv6."
"Hindi tulad ng isang normal na IP address (tinatawag na IPv4) na gumagamit ng 4 na byte upang bumuo ng isang natatanging numero, ang bagong pamantayan ay gumagamit ng 16."
"Isipin mo na lang, hindi matandaan ng mga tao ang 10 digit sa isang ordinaryong numero (tulad ng 2108458776), kaya kinailangan nilang hatiin ang mga ito sa 4 na bahagi, ngunit pagkatapos ay naisip nilang gumamit ng mga numero na binubuo ng 16 byte."
"Oo, minsan kakaiba ang tao."
"Yep. Tao ang tao."
"Iyon ay sinabi, sila ay nakalabas sa kanilang mahirap na kalagayan."
"Napagod sila sa pag-alala sa mga numero at nagpasya na palitan ang mga ito ng mga salita."
"Paano 'yan? Pwede mo ba akong bigyan ng halimbawa?"
"Siyempre, web.mail.com , google.com , new.books.amazon.com , …"
"Ang ganitong uri ng pangalan ay tinatawag na domain."
"Upang gumana nang maayos ang Internet na ito, gumawa sila ng isang espesyal na talahanayan na tinatawag na Domain Name System (DNS) na nag-iimbak ng IP address ng bawat domain name."
"Narito kung paano ito gumagana."
1) Ang isang user ay nagpasok ng isang address sa isang browser, halimbawa, web.mail.com .
2) Ina-access ng browser ang DNS at ginagamit ang domain name para makuha ang IP address.
3) Ang isang kahilingan na may kinakailangang URL ay ipinadala sa IP address na ito.
"Mukhang hindi masyadong simple iyon."
"Ngunit ang diskarte na ito ay may ilang mga benepisyo:"
" 1) Madaling matandaan ng mga tao ang mga pangalan na maaaring ipahayag."
" 2) Ang mga pangalan ng domain ay maaaring mabuo ayon sa hierarchical sa pamamagitan ng pagdaragdag ng mga subdomain sa simula ng isang pangalan. Eksaktong tulad ng isang pangalan ng package sa Java."
" 3) Kung kailangan mong baguhin ang IP address ng web server, kailangan mo lang baguhin ang DNS record, at lahat ay gagana tulad ng dati — hindi kailangang matandaan ng mga user ang isang bagong address."
"Mukhang ganito ang DNS:"
Pangalan ng domain | IP address |
---|---|
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 |
… |
"May katuturan."
"Gayunpaman, ang domain ay ang pangalan ng isang computer, ngunit hindi namin kailangan ang computer — kailangan namin kung ano ang nasa computer. Ito ang para sa mga URL."
"Sa una, ang isang URL ay talagang isang link sa isang file sa isa pang computer. Halimbawa:"
Halimbawa |
---|
http :// info.codegym.cc / user/info/profile.html |
Paglalarawan |
Ang http ay ang protocol para sa komunikasyon ng client-server na info.codegym.cc ay ang domain name ng computer na user/info/profile.html ay ang path patungo sa file sa computer |
"Sa simula pa lang ng network development, ang isang web server ay nakagamit lang ng URL para maghatid ng mga file na iniimbak nito saanman. Ang URL ay talagang isang pandaigdigang path patungo sa file: pangalan ng computer + path."
"Mamaya, nang magsimulang bumuo ng mga file ang mga web server, medyo nagbago ang mga URL at naging kahilingan sa web server. Nagdagdag din ng mga parameter ng kahilingan."
"Ngayon ay bihirang makakita ng extension ng file sa dulo ng isang URL. "Ang modernong URL ay isang natatanging link na may mga parameter. Mas katulad ng isang method call sa halip na isang global file path."
"Ang isang klasikong modernong URL ay ganito ang hitsura:"
Pag-parse ng URL |
---|
http :// codegym.cc / alpha/api/contacts ? userid=13&filter=none&page=3 |
Paglalarawan ng mga bahagi ng URL |
codegym.cc ay ang domain name — ang natatanging pangalan (address) ng isang computer sa Internet |
Ang http ay ang protocol para sa komunikasyon ng client-server |
Ang alpha/api/contacts ay ang kahilingan sa web server o kahilingan para sa isang webpage sa server |
userid=13 & filter=none & page=3 ay isang string na may mga parameter ng kahilingan |
"Oo, naalala ko. Sinabi mo sa akin ang tungkol sa mga URL kamakailan."
"And about ports too. Ginamit mo yung example ng apartment building."
"Mas mabuting sabihin sa akin kung ano ang 'http'. Nakikita ko ang 'protocol' na nakasulat sa lahat ng dako, ngunit hindi ako malinaw kung ano iyon."
"OK. I'll tell you without further ado."
" Ang HTTP ay nangangahulugang H yper T ext T ransport P rotocol at para sa paglilipat ng hypertext."
"Ano ang hypertext?"
"Ito ay HTML."
"Sa halos pagsasalita, ang isang protocol ay isang hanay ng mga panuntunan para sa komunikasyon. Inilalarawan nito ang mga kahilingan na maaaring ipadala sa isang web server, at sa anong format, pati na rin kung paano dapat tumugon ang web server."
"Sa madaling salita, ganito ang sitwasyon. Ordinaryong text file o, kung gusto mo, malalaking tipak ng text ang ipinapadala sa pagitan ng kliyente at server. "
"Ang isang kahilingan ay dumarating sa server, at ang server ay nagbibigay ng tugon sa bawat kahilingan."
"Narito ang mga halimbawa ng naturang kahilingan at tugon:"
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.
"Ang unang linya ay ang aktwal na kahilingan. Ang sumusunod ay mga karagdagang parameter ng kahilingan, na kilala rin bilang 'mga field ng header'."
"At narito ang isang halimbawa ng tugon:"
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.
"Gusto kong ituon ang iyong pansin sa dalawang bagay:"
"Una, anuman ang iyong hilingin, ito ay mukhang isang kahilingan sa file sa server. Hindi mahalaga kung ang file ay nasa server o ang server ay bumubuo nito bilang tugon sa kahilingan."
"Pangalawa, ang file mismo ay ipinadala bilang bahagi ng tugon ng HTTP . Sa madaling salita, nakikita namin ang ilang karagdagang data sa simula ng tugon ng server, at pagkatapos ay ang katawan ng file na inihahatid. "
"How interesting! I'm not sure naintindihan ko lahat. Babasahin ko ulit 'to mamaya."
"Oh, gusto kong sabihin sa iyo ang tungkol sa isa pang maliit, ngunit kawili-wili, bagay: cookies."
"Ano ang mga iyon?"
"Ayon sa HTTP protocol, ang cookies ay maliliit na piraso ng impormasyon na ipinapadala ng server sa kliyente para sa imbakan sa kliyente. At ibinabalik ang mga ito sa server bilang bahagi ng mga kasunod na kahilingan. "
"At ano ang silbi niyan?"
"Ipagpalagay na ang isang user ay nag-sign in sa home page ng isang website. Ang server ay gumagawa ng isang session object sa server para sa user na ito, at isang natatanging session number ang ipinadala sa client bilang isang cookie. Sa susunod na kahilingan mula sa client sa server, ang numero ng session na ito, kasama ng iba pang cookies, ay ibabalik sa server. Nangangahulugan ito na makikilala ng server ang user na nagpadala ng bagong kahilingan."
"Kawili-wili!"
"Yep. Kapag nagsulat ka ng sarili mong servlets, titingnan natin ang paksang ito. Pero sa ngayon, magpahinga muna tayo."
"Kahit anong sabihin mo."
GO TO FULL VERSION