Ginagamit ang mga protocol ng layer ng application upang maglipat ng impormasyon sa mga partikular na application ng kliyente na tumatakbo sa isang network computer. Sa mga IP network, ang mga application layer protocol ay nakabatay sa TCP standard at gumaganap ng ilang espesyal na function, na nagbibigay sa mga user program ng data para sa isang mahigpit na tinukoy na layunin. Sa ibaba ay titingnan natin sandali ang ilang mga protocol ng aplikasyon ng TCP/IP stack.
FTP protocol
Gaya ng ipinahihiwatig ng pangalan, ang FTP protocol ( Paglipat ng File Protocol) ay idinisenyo para sa paglilipat ng mga file sa Internet. Ito ay batay sa protocol na ito na ang mga pamamaraan para sa pag-download at pag-upload ng mga file sa mga malalayong node ng World Wide Web ay ipinatupad. Binibigyang-daan ka ng FTP na maglipat mula sa makina patungo sa makina hindi lamang ng mga file, kundi pati na rin sa buong mga folder, kabilang ang mga subdirectory sa anumang lalim ng pugad. Ginagawa ito sa pamamagitan ng pag-access sa FTP command system, na naglalarawan ng ilang built-in na function ng protocol na ito.
Mga protocol ng POP3 at SMTP
Mga protocol ng application na ginagamit kapag nagtatrabaho sa sa pamamagitan ng email, ay tinatawag na SMTP (Simple Mail Transfer Protocol) at POP3 (Post Office Protocol), ang una ay "responsable" para sa pagpapadala ng mga papalabas na sulat, ang pangalawa ay para sa paghahatid ng mga papasok na sulat.
Kasama sa mga function ng mga protocol na ito ang pag-aayos ng paghahatid ng mga mensaheng e-mail at paglilipat ng mga ito sa mail client. Bilang karagdagan, pinapayagan ka ng SMTP protocol na magpadala ng ilang mensahe sa isang tatanggap, ayusin ang intermediate na imbakan ng mga mensahe, at kopyahin ang isang mensahe para ipadala sa ilang tatanggap. Parehong may built-in na mekanismo ang POP3 at SMTP para sa pagkilala sa mga email address, pati na rin ang mga espesyal na module para sa pagpapataas ng pagiging maaasahan ng paghahatid ng mensahe.
HTTP protocol
HTTP protocol ( Hyper Text Transfer Protocol) ay nagbibigay ng paglipat mula sa mga malalayong server sa lokal na computer ng mga dokumentong naglalaman ng hypertext markup code na nakasulat HTML na wika o XML, iyon ay, mga web page. Ang application protocol na ito ay pangunahing nakatuon sa pagbibigay ng impormasyon sa mga web browser, ang pinakasikat sa mga ito ay mga application tulad ng Microsoft Internet Explorer at Netscape Communicator.
Ito ay sa paggamit ng HTTP protocol na ang mga kahilingan ay ipinapadala sa mga malalayong http server sa Internet at ang kanilang mga tugon ay pinoproseso; bukod sa
pinapayagan ka ng HTTP na ito na gumamit ng mga karaniwang address para tumawag sa mga mapagkukunan sa World Wide Web sistema ng domain mga pangalan (DNS, Domain Name System), iyon ay, mga pagtatalaga na tinatawag na URL (Uniform Resource Locator) ng form na http:/ /www.domain.zone/page (l).
TELNET protocol
Ang TELNET protocol ay idinisenyo upang ayusin pag-access sa terminal sa isang malayuang host sa pamamagitan ng pagpapalitan ng mga command sa ASCII na format ng character. Bilang isang patakaran, upang gumana sa isang server sa pamamagitan ng TELNET protocol, ang isang espesyal na programa na tinatawag na isang telnet client ay dapat na mai-install sa panig ng kliyente, na, sa pagkakaroon ng isang koneksyon sa isang remote na node, magbubukas ng system console ng operating shell ng server sa bintana nito. Pagkatapos nito, maaari mong pamahalaan ang server computer sa terminal mode na parang ito ay sa iyo (natural, sa loob ng balangkas na binalangkas ng administrator). Halimbawa, magagawa mong baguhin, tanggalin, lumikha, i-edit ang mga file at folder, pati na rin magpatakbo ng mga programa sa disk ng server machine, at magagawa mong tingnan ang mga nilalaman ng mga folder ng ibang mga user. Anuman ang operating system na iyong ginagamit, ang Telnet protocol ay magbibigay-daan sa iyo na makipag-usap sa isang malayuang makina "bilang katumbas". Halimbawa, madali kang makakapagbukas ng sesyon ng UNIX sa isang computer na nagpapatakbo ng MS Windows.
UDP protocol
Ang application data transfer protocol UDP (User Datagram Protocol) ay ginagamit sa mga mabagal na linya upang mag-broadcast ng impormasyon bilang mga datagram.
Ang isang datagram ay naglalaman ng kumpletong hanay ng data na kinakailangan upang maipadala at matanggap ito. Kapag nagpapadala ng mga datagram, ang mga computer ay hindi nag-aalala sa pagtiyak ng katatagan ng mga komunikasyon, kaya ang mga espesyal na hakbang ay dapat gawin upang matiyak ang pagiging maaasahan.
Ang pamamaraan para sa pagproseso ng impormasyon ng UDP protocol, sa prinsipyo, ay kapareho ng sa kaso ng TCP, ngunit may isang pagkakaiba: Ang UDP ay palaging naghahati ng impormasyon ayon sa parehong algorithm, sa isang mahigpit na tinukoy na paraan. Upang makipag-usap gamit ang UDP protocol, isang sistema ng pagtugon ang ginagamit: na nakatanggap ng isang UDP packet, ang computer ay nagpapadala ng isang paunang natukoy na signal sa nagpadala. Kung masyadong matagal ang paghihintay ng nagpadala para sa signal, inuulit lang nito ang transmission.
Sa unang sulyap, maaaring mukhang ang UDP protocol ay ganap na binubuo ng mga disadvantages, ngunit mayroon din itong isang makabuluhang bentahe: Ang mga application sa Internet ay gumagana sa UDP nang dalawang beses nang mas mabilis kaysa sa mas high-tech nitong kapatid na TCP.
Mga protocol ng layer ng application
Bakit may dalawang transport protocol, TCP at UDP, at hindi lang isa sa mga ito? Ang katotohanan ay nagbibigay sila ng iba't ibang mga serbisyo sa mga proseso ng aplikasyon. Karamihan sa mga application program ay gumagamit lamang ng isa sa mga ito. Ikaw, bilang isang programmer, piliin ang protocol na pinakaangkop sa iyong mga pangangailangan. Kung kailangan mo ng maaasahang paghahatid, maaaring ang TCP ang pinakamahusay. Kung kailangan mo ng paghahatid ng datagram, maaaring mas mahusay ang UDP. Kung kailangan mo ng mahusay na paghahatid sa isang mahaba, hindi mapagkakatiwalaang link ng data, maaaring mas magandang opsyon ang TCP. Kung kailangan ang kahusayan sa mga mabilis na network na may maiikling koneksyon, maaaring ang UDP ang pinakamahusay na protocol. Kung ang iyong mga pangangailangan ay hindi nabibilang sa alinman sa mga kategoryang ito, kung gayon ang pagpili ng transport protocol ay hindi malinaw. Gayunpaman, maaaring itama ng mga application program ang mga pagkukulang ng napiling protocol. Halimbawa, kung pipiliin mo ang UDP at kailangan mo ng pagiging maaasahan, kung gayon ang programa ng aplikasyon ay dapat magbigay ng pagiging maaasahan. Kung pipiliin mo ang TCP at kailangan mong maglipat ng mga talaan, dapat magpasok ang application program ng mga marker sa byte stream upang makilala ang mga tala.
Anong mga application ang magagamit sa mga TCP/IP network?
Ang kanilang kabuuang bilang ay malaki at patuloy na patuloy na tumataas. Ang ilang mga application ay umiikot mula pa sa simula ng internet. Halimbawa, TELNET at FTP. Ang iba ay lumitaw kamakailan: X-Window, SNMP.
Ang mga protocol sa antas ng aplikasyon ay nakatuon sa mga partikular na gawain sa aplikasyon. Tinutukoy nila ang parehong mga pamamaraan para sa pag-aayos ng pakikipag-ugnayan ng isang tiyak na uri sa pagitan ng mga proseso ng aplikasyon, at ang anyo ng paglalahad ng impormasyon sa panahon ng naturang pakikipag-ugnayan. Sa seksyong ito, maikli naming inilalarawan ang ilan sa mga protocol ng application.
TELNET protocol
Ang TELNET protocol ay nagpapahintulot sa makina ng serbisyo na ituring ang lahat ng malalayong terminal bilang karaniwang uri ng linya na "mga virtual na terminal ng network" na tumatakbo sa ASCII code, at nagbibigay din ng kakayahang makipag-ayos ng mas kumplikadong mga function (halimbawa, lokal o malayuang echo control, page mode, taas at lapad ng screen, at iba pa.) Ang TELNET ay gumagana batay sa TCP protocol. Sa antas ng aplikasyon sa itaas ng TELNET mayroong alinman sa isang tunay na programa ng suporta sa terminal (sa gilid ng gumagamit) o isang proseso ng aplikasyon sa makina ng paghahatid, na ina-access mula sa terminal.
Ang pagtatrabaho sa TELNET ay parang pag-dial ng numero ng telepono. Ang gumagamit ay nagta-type ng isang bagay na tulad nito sa keyboard
at tumatanggap ng on-screen na imbitasyon para pumasok sa delta car.
Matagal nang umiral ang TELNET protocol. Ito ay mahusay na nasubok at laganap. Maraming mga pagpapatupad ang nilikha para sa isang malawak na iba't ibang mga operating system. Ito ay lubos na katanggap-tanggap para sa proseso ng kliyente na tumakbo, sabihin, sa ilalim ng VAX/VMS OS, at ang proseso ng server upang patakbuhin ang UNIX System V.
FTP protocol
Ang FTP protocol (File Transfer Protocol) ay kasing laganap ng TELNET. Ito ay isa sa mga pinakalumang protocol sa pamilya ng TCP/IP. Tulad ng TELNET, gumagamit ito ng mga serbisyo sa transportasyon ng TCP. Maraming mga pagpapatupad para sa iba't ibang mga operating system na mahusay na gumagana nang magkasama. Ang isang gumagamit ng FTP ay maaaring tumawag sa ilang mga utos na nagpapahintulot sa kanya na tingnan ang direktoryo ng isang malayuang makina, lumipat mula sa isang direktoryo patungo sa isa pa, at kopyahin ang isa o higit pang mga file.
SMTP protocol
Sinusuportahan ng SMTP protocol (Simple Mail Transfer Protocol) ang paglipat ng mga mensahe (email) sa pagitan ng mga arbitrary na node sa Internet. Ang pagkakaroon ng mga mekanismo para sa intermediate na pag-iimbak ng mail at mga mekanismo para sa pagtaas ng pagiging maaasahan ng paghahatid, pinapayagan ng SMTP protocol ang paggamit ng iba't ibang serbisyo sa transportasyon. Maaari pa itong gumana sa mga network na hindi gumagamit ng mga protocol ng pamilya ng TCP/IP. Ang SMTP protocol ay nagbibigay ng parehong pagpapangkat ng mga mensahe sa parehong tatanggap at pagpaparami ng ilang mga kopya ng isang mensahe para sa paghahatid sa iba't ibang mga address. Sa itaas ng SMTP module ay ang mail service para sa mga partikular na computer system.
r-utos
Mayroong isang buong serye ng "r-commands" (mula sa remote - remote), na unang lumitaw sa UNIX OS. Ang mga ito ay kahalintulad sa mga regular na utos ng UNIX, ngunit idinisenyo upang gumana sa mga malalayong makina. Halimbawa, ang rcp command ay katulad ng cp command at nilayon para sa pagkopya ng mga file sa pagitan ng mga makina. Para maglipat ng file sa node delta, ilagay lang
rcp file.c delta:
Upang isagawa ang command na "cc file.c" sa delta machine, maaari mong gamitin ang rsh command:
rsh delta cc file.c
Upang ayusin ang pagpasok sa malayong sistema Ang utos ng rlogin ay inilaan:
Ang mga r-series na utos ay pangunahing ginagamit sa mga system na tumatakbo sa UNIX operating system. Mayroon ding mga pagpapatupad para sa MS-DOS. Pinapaginhawa ng mga utos ang gumagamit ng pangangailangan na mag-type ng mga password kapag nagla-log in sa isang malayuang sistema at lubos na pinapadali ang kanilang trabaho.
Network file system NFS (Network File System) ay unang binuo ng Sun Microsystems Inc. Gumagamit ang NFS ng mga serbisyo sa transportasyon ng UDP at pinapayagan ang mga file system ng maraming UNIX machine na mai-mount sa iisang unit. Ang mga diskless workstation ay nag-a-access ng mga file server disk na parang sila ang kanilang mga lokal na disk.
Ang NFS ay makabuluhang nagpapataas ng load sa network. Kung ang network ay gumagamit ng mabagal na linya ng komunikasyon, kung gayon ang NFS ay hindi gaanong pakinabang. Gayunpaman, kung throughput Kung pinapayagan ng network ang NFS na gumana nang normal, ang mga user ay makakatanggap ng magagandang benepisyo. Dahil ang NFS server at client ay ipinatupad sa OS kernel, lahat ng mga karaniwang non-network program ay magagawang gumana sa mga malalayong file na matatagpuan sa mga naka-mount na NFS disk sa parehong paraan tulad ng sa mga lokal na file.
SNMP protocol
Ang SNMP protocol (Simple Network Management Protocol) ay gumagana sa isang UDP na batayan at nilayon para gamitin ng mga network management station. Pinapayagan nito ang mga istasyon ng kontrol na mangolekta ng impormasyon tungkol sa estado ng mga gawain sa Internet. Tinutukoy ng protocol ang format ng data sa kanilang pagpoproseso at interpretasyon ay naiwan sa pagpapasya ng mga istasyon ng kontrol o ng network manager.
X-Window
Ginagamit ng X-Window system ang X-Window protocol, na tumatakbo sa TCP, para sa multi-window na pagpapakita ng mga graphics at text sa mga display ng bitmap ng workstation. Ang X-Window ay higit pa sa isang window drawing utility; Ito ay isang buong pilosopiya ng pakikipag-ugnayan ng tao-machine.
Mga protocol ng aplikasyon sa Internet
Ang pinakamataas na antas sa Internet protocol hierarchy ay inookupahan ng mga sumusunod na application layer protocol:
- DNS - distributed system mga domain name, na, kapag hiniling na naglalaman ng domain name ng host, ay nag-uulat ng IP address;
- HTTP- protocol para sa pagpapadala ng hypertext sa Internet;
- HTTPS- HTTP protocol extension na sumusuporta sa encryption;
- FTP(File Transfer Protocol - RFC 959) - isang protocol na idinisenyo para sa paglilipat ng mga file sa mga network ng computer;
- Telnet(TELecommunication NETwork - RFC 854) - network protocol para sa pagpapatupad ng text interface sa network;
- SSH(Secure Shell - RFC 4251) ay isang application protocol na nagbibigay-daan sa remote control ng operating system at paglilipat ng file. Hindi tulad ng Telnet, ini-encrypt nito ang lahat ng trapiko;
- POP3– mail client protocol, na ginagamit ng mail client upang makatanggap ng mga mensaheng email mula sa server;
- IMAP- protocol para sa pag-access ng e-mail sa Internet;
- SMTP– isang protocol na ginagamit upang magpadala ng mail mula sa mga user patungo sa mga server at sa pagitan ng mga server para sa karagdagang pagpapasa sa tatanggap;
- LDAP- Ang Protocol para sa pag-access sa mga serbisyo ng direktoryo na X.500, ay isang malawakang ginagamit na pamantayan para sa pag-access sa mga serbisyo ng direktoryo;
- XMPP(Jabber) - XML-based extensible protocol para sa instant messaging sa malapit sa real time;
- SNMP- pangunahing protocol sa pamamahala ng Internet.
Tingnan natin ang ilan sa mga protocol na ito.
Pinapayagan ka ng FTP na kumonekta sa Mga FTP server, tingnan ang mga nilalaman ng mga direktoryo at mag-download ng mga file mula sa o sa server; Bilang karagdagan, posible ang isang file transfer mode sa pagitan ng mga server; Binibigyang-daan ka ng FTP na makipagpalitan at magsagawa ng mga operasyon sa mga file sa isang TCP network. Gumagana ang protocol na ito anuman ang mga operating system. Sa kasaysayan, nag-aalok ang FTP ng bukas na pag-andar, na nagpapahintulot sa mga file na mailipat nang malinaw mula sa isang computer patungo sa isa pa sa isang network. Ito ay hindi gaanong maliit na tila, dahil ang iba't ibang uri ng mga computer ay maaaring may iba't ibang laki ng salita, at ang mga piraso sa mga salita ay maaaring hindi nakaimbak sa parehong pagkakasunud-sunod o ginagamit. iba't ibang mga format mga salita
- Telnet
Ang pangalang "telnet" ay ginagamit din ng ilang mga utility na nagpapatupad bahagi ng kliyente protocol. Protocol telnet gumagana alinsunod sa mga prinsipyo ng arkitektura ng client-server at nagbibigay ng emulation ng isang alphanumeric terminal, na nililimitahan ang user sa mode command line. Aplikasyon telnet nagbigay ng wika para sa mga terminal upang makipag-ugnayan sa mga malalayong computer. Nang magkaroon ng ARPANET, ang bawat computer system ay nangangailangan ng sarili nitong mga terminal. Aplikasyon telnet ay naging karaniwang denominator para sa mga terminal. Ito ay sapat na upang magsulat ng software para sa bawat computer na sumusuporta sa "terminal telnet"upang ang isang terminal ay maaaring makipag-ugnayan sa lahat ng uri ng mga computer.
Ito ay katulad sa pag-andar sa mga protocol ng telnet at rlogin, ngunit, hindi katulad ng mga ito, ini-encrypt nito ang lahat ng trapiko, kabilang ang mga ipinadalang password. Ang mga kliyente ng SSH at mga server ng SSH ay magagamit para sa karamihan ng mga operating system.
- Mga protocol ng postal.
Bagaman telnet at FTP ay (at pa rin ay) kapaki-pakinabang, ang unang application na baguhin ang isip ng ARPANET mga gumagamit ng computer ay email. May mga email system bago ang ARPANET, ngunit lahat sila ay mga single-computer system. Noong 1972 Ray Tomlinson Isinulat ni (Ray Tomlinson) mula sa BBN ang unang pakete upang magbigay ng mga distributed mail services sa isang computer network ng ilang mga computer. Noong 1973, ipinakita ng mga pag-aaral sa pamamahala ng ARPA na ang tatlong-kapat ng lahat ng trapiko ng ARPANET ay email. Ang mga benepisyo ng email ay napakahusay na parami nang parami ang mga user na naghangad na kumonekta sa ARPANET, na nagreresulta sa pagtaas ng pangangailangan na magdagdag ng mga bagong node at gumamit ng mga high-speed na linya. Kaya, lumitaw ang isang kalakaran na nagpapatuloy hanggang ngayon.
- POP3(Post Office Protocol Bersyon 3 - RFC 1939) - isang protocol na ginagamit ng isang email client upang makatanggap ng mga mensaheng email mula sa isang mail server;
- IMAP(Mensahe sa Internet Access Protocol- RFC 3501) - protocol ng pag-access sa email. Katulad ng POP3, ngunit nagbibigay sa user ng maraming kakayahan para sa pagtatrabaho sa mga mailbox na matatagpuan sa isang sentral na server. Maaaring manipulahin ang mga email mula sa computer ng user (client) nang hindi kinakailangang patuloy na maglipat ng mga file na may buong nilalaman ng mga email pabalik-balik mula sa server.
- SMTP(Simple Mail Transfer Protocol - RFC 2821) - isang protocol na idinisenyo para sa pagpapadala ng email. Ginagamit upang magpadala ng mail mula sa mga user patungo sa mga server at sa pagitan ng mga server para sa karagdagang pagpapasa sa tatanggap. Upang makatanggap ng mail, dapat gamitin ng mail client ang mga protocol ng POP3 o IMAP.
Ang pangunahing protocol ng Web hypertext resource network ay ang HTTP protocol. Ito ay batay sa pakikipag-ugnayan" kliyente- server ", ibig sabihin, ipinapalagay na:
- mamimili- kliyente sa pamamagitan ng pagsisimula ng isang koneksyon sa supplier - server nagpapadala sa kanya ng isang kahilingan;
- Supplier- server, na natanggap ang kahilingan, nagsasagawa ng mga kinakailangang aksyon at nagbabalik ng tugon kasama ang resulta pabalik sa kliyente.
Sa kasong ito, mayroong dalawang posibleng paraan upang ayusin ang gawain ng computer ng kliyente:
- Payat na kliyente ay isang computer ng kliyente na naglilipat ng lahat ng mga gawain sa pagproseso ng impormasyon sa server. Ang isang halimbawa ng thin client ay isang computer na may browser na ginagamit upang gumana sa mga web application.
- Matabang kliyente, sa kabaligtaran, nagpoproseso ng impormasyon anuman ang mga server, ginagamit ang huli pangunahin lamang para sa pag-iimbak ng data.
Bago lumipat sa mga partikular na teknolohiya sa web ng client-server, tingnan natin ang mga pangunahing prinsipyo at istruktura ng pangunahing HTTP protocol.
HTTP protocol
Ang HTTP (HyperText Transfer Protocol - RFC 1945, RFC 2616) ay isang application layer protocol para sa paglilipat ng hypertext.
Ang sentral na entity sa HTTP ay mapagkukunan, na itinuturo ng URI sa kahilingan ng kliyente. Karaniwan, ang mga naturang mapagkukunan ay naka-imbak sa server mga file. Ang isang tampok ng HTTP protocol ay ang kakayahang tukuyin sa kahilingan at pagtugon ang paraan ng kumakatawan sa parehong mapagkukunan ayon sa iba't ibang mga parameter: format, pag-encode, wika, atbp. Ito ay salamat sa kakayahang tukuyin ang paraan ng pag-encode ng isang mensahe na ang kliyente at server ay maaaring makipagpalitan ng binary data, bagama't sa simula ang protocol na ito ay idinisenyo upang magpadala ng simbolikong impormasyon. Sa unang tingin, ito ay maaaring mukhang isang pag-aaksaya ng mga mapagkukunan. Sa katunayan, ang data sa simbolikong anyo ay tumatagal ng mas maraming memorya, ang mga mensahe ay lumikha ng karagdagang pagkarga sa mga channel ng komunikasyon, ngunit ang format na ito ay may maraming mga pakinabang. Ang mga mensaheng ipinadala sa network ay nababasa, at sa pamamagitan ng pagsusuri sa natanggap na data, madaling mahanap ng system administrator ang error at ayusin ito. Kung kinakailangan, ang papel ng isa sa mga nakikipag-ugnayan na application ay maaaring gawin ng isang tao, na manu-manong pagpasok ng mga mensahe sa kinakailangang format.
Hindi tulad ng maraming iba pang mga protocol, ang HTTP ay isang walang memorya na protocol. Nangangahulugan ito na ang protocol ay hindi nag-iimbak ng impormasyon tungkol sa mga nakaraang kahilingan ng kliyente at mga tugon ng server. Ang mga bahagi na gumagamit ng HTTP ay maaaring independiyenteng mapanatili ang impormasyon ng estado na nauugnay sa pinakabagong mga kahilingan at mga sagot. Halimbawa, maaaring subaybayan ng isang web client application na nagpapadala ng mga kahilingan ang mga pagkaantala sa pagtugon, at ang isang web server ay maaaring mag-imbak ng mga IP address at humiling ng mga header ng pinakabagong mga kliyente.
Ang lahat ng software para sa pagtatrabaho sa HTTP protocol ay nahahati sa tatlong pangunahing kategorya:
- Mga server - mga tagapagbigay ng mga serbisyo sa pag-iimbak at pagproseso ng impormasyon (pagproseso ng kahilingan).
- Mga kliyente- mga end consumer ng mga serbisyo ng server (pagpapadala ng mga kahilingan).
- Mga proxy server upang suportahan ang gawain ng mga serbisyo sa transportasyon.
Ang mga pangunahing kliyente ay mga browser halimbawa: InternetExplorer, Opera, MozillaFirefox, NetscapeNavigator at iba pa. Ang pinakasikat na mga pagpapatupad sa web mga server ay: InternetInformationServices (IIS), Apache, lighttpd, nginx. Karamihan mga kilalang pagpapatupad mga proxy server: Squid, UserGate, Multiproxy, Naviscope.
Ang "classic" na pamamaraan ng HTTP session ay ganito ang hitsura.
- Pagtatatag ng koneksyon sa TCP.
- Kahilingan ng kliyente.
- Tugon ng server.
- Pagwawakas ng koneksyon sa TCP.
Kaya nagpapadala ang kliyente server kahilingan, tumatanggap ng tugon mula dito, pagkatapos nito ay huminto ang pakikipag-ugnayan. Karaniwan, ang kahilingan ng kliyente ay isang kahilingan para sa isang HTML na dokumento o ilang iba pang mapagkukunan, at ang tugon ng server ay naglalaman ng code para sa mapagkukunang iyon.
Ang kahilingan sa HTTP na ipinadala ng kliyente sa server ay kinabibilangan ng mga sumusunod na bahagi.
- Linya ng katayuan (kung minsan ang mga terminong linya ng katayuan o linya ng query ay ginagamit din upang sumangguni dito).
- Mga field ng header.
- Walang laman na string.
- Humiling ng katawan.
Status bar kasama ng mga field ng header minsan tinatawag din header ng kahilingan.
kanin. 2.1. Istraktura ng kahilingan ng kliyente.
Status bar ay may sumusunod na format:
request_method URL_pecypca protocol_version HTTP
Tingnan natin ang mga bahagi ng status bar, na may espesyal na pansin sa mga paraan ng paghiling.
Pamamaraan tinutukoy sa linya ng katayuan kung paano maaapektuhan ang mapagkukunan na ang URL ay tinukoy sa parehong linya. Ang pamamaraan ay maaaring kumuha ng mga halaga GET, POST, HEAD, PUT, DELETE, atbp. Sa kabila ng kasaganaan ng mga pamamaraan, dalawa lamang sa kanila ang tunay na mahalaga para sa isang web programmer: GET at POST.
- GET. Ayon sa pormal na kahulugan, ang GET method ay nilayon upang makakuha ng resource na may tinukoy na URL. Sa pagtanggap ng kahilingan sa GET, dapat basahin ng server ang tinukoy na mapagkukunan at isama ang resource code bilang bahagi ng tugon sa kliyente. Ang mapagkukunan na ang URL ay ipinasa bilang bahagi ng kahilingan ay hindi kailangang isang HTML na pahina, file ng imahe, o iba pang data. Ang resource URL ay maaaring tumuro sa executable program code na, kung matutugunan ang ilang partikular na kundisyon, ay dapat isagawa sa server. Sa kasong ito, ibinalik sa kliyente hindi ang program code, ngunit ang data na nabuo sa panahon ng pagpapatupad nito. Bagama't, sa pamamagitan ng kahulugan, ang GET na paraan ay inilaan upang kunin ang impormasyon, maaari itong magamit para sa iba pang mga layunin. Ang pamamaraan ng GET ay angkop para sa paglilipat ng maliliit na piraso ng data sa server.
- POST. Ayon sa parehong pormal na kahulugan, ang pangunahing layunin ng pamamaraan ng POST ay upang ilipat ang data sa server. Gayunpaman, tulad ng GET method, ang POST method ay maaaring gamitin sa iba't ibang paraan at kadalasang ginagamit upang kunin ang impormasyon mula sa isang server. Tulad ng pamamaraang GET, ang URL na tinukoy sa status bar ay tumuturo sa isang partikular na mapagkukunan. Ang pamamaraan ng POST ay maaari ding gamitin upang simulan ang isang proseso.
- Ang mga pamamaraan ng HEAD at PUT ay mga pagbabago GET pamamaraan at POST.
Bersyon ng protocol Ang HTTP ay karaniwang tinutukoy sa sumusunod na format:
HTTP/version.modification
Mga field ng header, kasunod ng linya ng katayuan, nagbibigay-daan sa iyong pinuhin ang kahilingan, i.e. magpadala ng karagdagang impormasyon sa server. Ang field ng header ay may sumusunod na format:
FieldName: Halaga
Ang layunin ng isang field ay tinutukoy ng pangalan nito, na pinaghihiwalay mula sa halaga ng isang colon.
Ang mga pangalan ng ilan sa mga pinakakaraniwang field ng header sa kahilingan ng kliyente at ang layunin ng mga ito ay ibinibigay sa talahanayan 2.1.
Talahanayan 2.1. Mga field ng header ng kahilingan sa HTTP. | |
Mga Patlang ng Header ng Kahilingan sa HTTP | Ibig sabihin |
Host | Domain name o IP address ng host na ina-access ng kliyente |
Referrer | URL ng dokumento na tumutukoy sa mapagkukunang nakalista sa status bar |
Mula sa | Email address ng user na nagtatrabaho sa client |
Tanggapin | Mga uri ng MIME ng data na pinoproseso ng kliyente. Maaaring magkaroon ng maraming value ang field na ito, na pinaghihiwalay ng mga kuwit. Kadalasan ang Accept header field ay ginagamit upang sabihin sa server kung anong mga uri ng mga graphics file ang sinusuportahan ng kliyente |
Tanggapin-Wika | Isang set ng dalawang-character na identifier, na pinaghihiwalay ng mga kuwit, na nagpapahiwatig ng mga wikang sinusuportahan ng kliyente |
Tanggapin-Charset | Listahan ng mga sinusuportahang hanay ng character |
Uri ng Nilalaman | Uri ng MIME ng data na nilalaman sa katawan ng kahilingan (kung ang kahilingan ay hindi binubuo ng isang header) |
Nilalaman-Haba | Bilang ng mga character na nilalaman sa nilalaman ng kahilingan (kung ang kahilingan ay hindi binubuo ng isang header) |
Saklaw | Ipakita kung hindi hiniling ng kliyente ang buong dokumento, ngunit bahagi lamang nito |
Koneksyon | Ginagamit upang pamahalaan ang koneksyon sa TCP. Kung ang field ay naglalaman ng Close, nangangahulugan ito na dapat isara ng server ang koneksyon pagkatapos iproseso ang kahilingan. Ang halaga ng Keep-Alive ay nagmumungkahi na panatilihing bukas ang koneksyon ng TCP upang magamit ito para sa mga kasunod na kahilingan |
Ahente ng Gumagamit | Impormasyon ng kliyente |
Sa maraming mga kaso, kapag nagtatrabaho sa Web, walang katawan ng kahilingan. Kapag ang mga CGI script ay pinapatakbo, ang data na ipinasa sa kanila sa kahilingan ay maaaring ilagay sa katawan ng kahilingan.
Nasa ibaba ang isang halimbawa ng isang kahilingan sa HTML na nabuo ng browser
GET http://oak.oakland.edu/ HTTP/1.0
Koneksyon: Keep-Alive
Ahente ng Gumagamit: Mozilla/4.04 (Win95; I)
Host: oak.oakland.edu
Tanggapin: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*
Tanggapin-Wika: tl
Accept-Charset: iso-8859-l,*,utf-8
Ang pagkakaroon ng natanggap na kahilingan mula sa isang kliyente, ang server ay dapat tumugon dito. Ang kaalaman sa istruktura ng tugon ng server ay kinakailangan para sa isang developer ng web application, dahil ang mga program na tumatakbo sa server ay dapat na independiyenteng bumuo ng tugon sa kliyente.
Katulad ng kahilingan ng kliyente, ang tugon mga server binubuo rin ng apat na sangkap na nakalista sa ibaba.
- Status bar.
- Mga field ng header.
- Walang laman na string.
- Katawan ng pagtugon.
Ang tugon ng server sa kliyente ay nagsisimula sa isang linya ng katayuan, na may sumusunod na format:
Protocol_version Response_code Explanatory_message
- Protocol_version ay tinukoy sa parehong format tulad ng sa kahilingan ng kliyente at may parehong kahulugan.
- Response_code ay isang tatlong-digit na decimal na numero na kumakatawan sa naka-encode na anyo ng resulta ng pagseserbisyo sa kahilingan server.
- Paliwanag na mensahe duplicate ang response code sa simbolikong anyo. Isa itong string ng character na hindi pinoproseso ng kliyente. Ito ay inilaan para sa system administrator o operator na kasangkot sa pagpapanatili ng system, at isang decoding ng response code.
Sa tatlong digit na bumubuo sa response code, tinutukoy ng una (pinakamataas) ang klase ng pagtugon, ang natitirang dalawa ay kumakatawan sa numero ng tugon sa loob ng klase. Kaya, halimbawa, kung matagumpay na naproseso ang kahilingan, natatanggap ng kliyente ang sumusunod na mensahe:
HTTP/1.0 200 OK
Gaya ng nakikita mo, ang bersyon 1.0 ng HTTP protocol ay sinusundan ng code 200. Sa code na ito, ang character 2 ay nangangahulugan ng matagumpay na pagproseso ng kahilingan ng kliyente, at ang natitirang dalawang digit (00) ay nagpapahiwatig ng numero ng mensaheng ito.
Sa kasalukuyang ginagamit na mga pagpapatupad ng HTTP protocol, ang unang digit ay hindi maaaring lumampas sa 5 at tumutukoy sa mga sumusunod na klase ng pagtugon.
- 1 - isang espesyal na klase ng mga mensahe na tinatawag na impormasyon. Ang sagot na code na nagsisimula sa 1 ay nangangahulugan na server patuloy na pinoproseso ang kahilingan. Kapag nagpapalitan ng data sa pagitan ng isang HTTP client at isang HTTP server, ang mga mensahe ng klase na ito ay bihirang ginagamit.
- 2 - matagumpay na pagproseso ng kahilingan ng kliyente.
- 3 - humiling ng pag-redirect. Upang maserbisyuhan ang kahilingan, dapat mong kunin karagdagang mga aksyon.
- 4 - error sa kliyente. Kadalasan, ibinabalik ang isang response code na nagsisimula sa numero 4 kung mayroong error sa syntax sa kahilingan ng kliyente.
- 5 - error sa server. Para sa isang kadahilanan o iba pa, hindi nakumpleto ng server ang kahilingan.
Mga halimbawa ng mga response code na maaaring matanggap ng isang kliyente mula sa server at ang mga paliwanag na mensahe ay ibinigay talahanayan 2.2.
Talahanayan 2.2. Mga klase ng code ng tugon ng server. | ||
Code | Pagde-decode | Interpretasyon |
Magpatuloy | Ang bahagi ng kahilingan ay tinanggap at ang server ay naghihintay para sa kliyente na ipagpatuloy ang kahilingan | |
OK | Ang kahilingan ay matagumpay na naproseso, at ang tugon ng kliyente ay naglalaman ng data na tinukoy sa kahilingan | |
Nilikha | Bilang resulta ng pagproseso ng kahilingan, a bagong mapagkukunan | |
Tinanggap | Ang kahilingan ay tinanggap ng server, ngunit hindi pa nakumpleto ang pagproseso. Hindi ginagarantiya ng response code na ito na mapoproseso ang kahilingan nang walang mga error. | |
Bahagyang Nilalaman | Ibinabalik ng server ang bahagi ng mapagkukunan bilang tugon sa isang kahilingan na naglalaman ng field ng header ng Range | |
Maramihang Pagpipilian | Ang kahilingan ay tumuturo sa higit sa isang mapagkukunan. Ang katawan ng pagtugon ay maaaring maglaman ng mga tagubilin kung paano matukoy nang tama ang hiniling na mapagkukunan | |
Permanenteng Inilipat | Ang hiniling na mapagkukunan ay hindi na matatagpuan sa server | |
Pansamantalang Inilipat | Pansamantalang binago ng hiniling na mapagkukunan ang address nito | |
Masamang Kahilingan | May nakitang error sa syntax sa kahilingan ng kliyente | |
Bawal | Ang mapagkukunang magagamit sa server ay hindi magagamit sa user na ito | |
Hindi Nahanap | Ang mapagkukunang tinukoy ng kliyente ay wala sa server | |
Hindi Pinahihintulutan ang Paraan | Hindi sinusuportahan ng server ang pamamaraang tinukoy sa kahilingan | |
Panloob na Server Error | Ang isa sa mga bahagi ng server ay hindi gumagana nang tama | |
Hindi Naipatupad | Hindi sapat ang functionality ng server para matupad ang kahilingan ng kliyente | |
Hindi Available ang Serbisyo | Pansamantalang hindi available ang serbisyo | |
Hindi Sinusuportahan ang Bersyon ng HTTP | Ang bersyon ng HTTP na tinukoy sa kahilingan ay hindi sinusuportahan ng server |
Gumagamit ang tugon ng parehong istraktura ng field ng header gaya ng kahilingan ng kliyente. Ang mga field ng header ay nilayon upang linawin ang tugon ng server sa kliyente. Ang isang paglalarawan ng ilan sa mga patlang na maaaring matagpuan sa header ng tugon ng server ay ibinigay sa talahanayan 2.3.
Talahanayan 2.3. Mga field ng header ng pagtugon sa web server. | |
Pangalan ng field | Paglalarawan ng Nilalaman |
server | Pangalan ng server at numero ng bersyon |
Edad | Oras sa mga segundo mula noong ginawa ang mapagkukunan |
Payagan | Listahan ng mga pamamaraan na pinapayagan para sa isang ibinigay na mapagkukunan |
Nilalaman-Wika | Mga wika na dapat suportahan ng kliyente upang maipakita nang tama ang inilipat na mapagkukunan |
Uri ng Nilalaman | Uri ng MIME ng data na nasa katawan ng tugon ng server |
Nilalaman-Haba | Bilang ng mga character na nilalaman sa katawan ng tugon ng server |
Huling Binago | Petsa at oras na huling binago ang mapagkukunan |
Petsa | Ang petsa at oras na tumutukoy kung kailan nabuo ang tugon |
Mag-e-expire | Ang petsa at oras na tumutukoy sa sandali kung kailan ang impormasyong ipinadala sa kliyente ay itinuturing na wala na sa petsa |
Lokasyon | Ang patlang na ito ay nagpapahiwatig ng aktwal na lokasyon ng mapagkukunan. Ito ay ginagamit upang i-redirect ang kahilingan |
Cache-Control | Mga direktiba sa pagkontrol sa pag-cache. Halimbawa, hindi - Ang ibig sabihin ng cache ay hindi dapat i-cache ang data |
Ang katawan ng tugon ay naglalaman ng resource code na ipinadala sa kliyente bilang tugon sa kahilingan. Hindi ito kailangang maging HTML na teksto ng web page. Ang tugon ay maaaring maglaman ng isang imahe, isang audio file, isang fragment ng impormasyon ng video, pati na rin ang anumang iba pang uri ng data na sinusuportahan ng kliyente. Ang mga nilalaman ng field ng header ng nilalaman ay nagsasabi sa kliyente kung paano iproseso ang natanggap na mapagkukunan. - uri.
Nasa ibaba ang isang halimbawa ng tugon ng server sa kahilingang ibinigay sa nakaraang seksyon. Ang katawan ng tugon ay naglalaman ng pinagmulang teksto ng HTML na dokumento.
Server: Microsoft-IIS/5.1
X-Powered-By: ASP.NET
Uri ng Nilalaman: text/html
Accept-Ranges: bytes
ETag: "b66a667f948c92:8a5"
Haba ng Nilalaman: 426