Iestatiet interneta serveri Python, izmantojot ligzdu

click fraud protection

Kā papildinājums tīkla klienta apmācībai šī apmācība parāda, kā ieviest vienkāršu tīmekļa serveri Python. Protams, tas neaizvieto Apache vai Zope. Ir arī stabilāki Web pakalpojumu ieviešanas veidi Python, izmantojot tādus moduļus kā BaseHTTPServer. Šis serveris izmanto tikai ligzdas moduli.

Jūs atcerēsities, ka kontaktligzdas modulis ir vairuma Python tīmekļa pakalpojumu moduļu pamats. Tāpat kā vienkārša tīkla klienta gadījumā, arī servera izveidošana caurredzami atspoguļo Python tīmekļa pakalpojumu pamatus. BaseHTTPServer pati importē ligzdas moduli, lai ietekmētu serveri.

Pārskatot, visi tīkla darījumi notiek starp klientiem un serveriem. Lielākajā daļā protokolu klienti pieprasa noteiktu adresi un saņem datus.

Katrā adresē var darboties daudz serveru. Ierobežojums ir aparatūrā. Ar pietiekamu aparatūru (RAM, procesora ātrumu utt.) Tas pats dators var kalpot kā tīmekļa serveris, ftp serveris un pasta serveris (pop, smtp, imap vai visi iepriekš minētie) visi vienlaikus. Katrs pakalpojums ir saistīts ar ostu. Osta ir savienota ar kontaktligzdu. Serveris klausās ar to saistīto portu un sniedz informāciju, kad šajā ostā tiek saņemti pieprasījumi.

instagram viewer

Tātad, lai ietekmētu tīkla savienojumu, jums jāzina resursdators, ports un šajā ostā atļautās darbības. Lielākā daļa tīmekļa serveru darbojas 80. portā. Tomēr, lai izvairītos no konfliktiem ar instalētu Apache serveri, mūsu tīmekļa serveris darbosies uz 8080 portu. Lai izvairītos no konfliktiem ar citiem pakalpojumiem, vislabāk ir saglabāt HTTP pakalpojumus ostā 80 vai 8080. Šīs ir divas visizplatītākās. Acīmredzot, ja tie tiek izmantoti, jums jāatrod atvērts ports un jābrīdina lietotāji par izmaiņām.

Tāpat kā tīkla klientam, jāņem vērā, ka šīs adreses ir dažādu pakalpojumu kopējie portu numuri. Kamēr klients pieprasa pareizo pakalpojumu pareizajā ostā pareizajā adresē, komunikācija joprojām notiks. Google Piemēram, pasta pakalpojums sākotnēji nedarbojās ar kopējiem portu numuriem, bet, tā kā viņi zina, kā piekļūt saviem kontiem, lietotāji joprojām var saņemt savu pastu.

Atšķirībā no tīkla klienta, visi mainīgie serverī ir vadu. Jebkuram pakalpojumam, kuru paredzēts nepārtraukti darbināt, komandrindas iekšējās loģikas mainīgajiem nevajadzētu būt. Vienīgās izmaiņas šajā gadījumā būtu, ja kāda iemesla dēļ jūs vēlētos, lai pakalpojums darbotos neregulāri un izmantojot dažādus portu numurus. Tomēr, ja tas tā būtu, jūs joprojām varētu skatīties sistēmas laiku un attiecīgi mainīt stiprinājumus.

Kā jau minēts, serverim jāzina resursdators, ar kuru tas tiks saistīts, un ports, kurā klausīties. Mūsu vajadzībām pakalpojums vispār tiks attiecināts uz jebkuru resursdatora vārdu.

Osta, kā minēts iepriekš, būs 8080. Tāpēc ņemiet vērā: ja šo serveri izmantojat kopā ar tīkla klientu, jums būs jāmaina tajā izmantotais porta numurs programma.

Vai pieprasīt informāciju vai to apkalpot, lai piekļūtu Internets, mums jāizveido kontaktligzda. Šī zvana sintakse ir šāda:

Pirmie divi acīmredzami ir interneta protokoli. Šajās ģimenēs var piekļūt jebkam, kas ceļo pa internetu. Daudzi tīkli joprojām nedarbojas ar IPv6. Tātad, ja vien jūs zināt citādi, visdrošāk ir noklusēt IPv4 un izmantot AF_INET.

Līdz šim visizplatītākie tipi ir SOCK_STEAM un SOCK_DGRAM, jo tie darbojas divos IP komplekta protokolos (TCP un UDP). Pēdējie trīs ir daudz retāki, tāpēc tos ne vienmēr var atbalstīt.

Pēc kontaktligzdas izveidošanas mums pēc tam ir jāiestata kontaktligzdas opcijas. Jebkuram kontaktligzdas objektam varat iestatīt kontaktligzdas opcijas, izmantojot metodi setsockopt (). Sintakse ir šāda:

Ja mēs vēlamies sniegt atsauksmes personai, kas zvana uz serveri, tagad mēs varētu ievadīt drukāšanas komandu, lai apstiprinātu, ka serveris darbojas un darbojas.

Pēc servera iestatīšanas mums tagad ir jāpasaka Python ko darīt, ja attiecīgajā ostā tiek veikts pieprasījums. Šajā nolūkā mēs atsaucamies uz pieprasījumu pēc tā vērtības un izmantojam to kā pastāvīgas, bet vienlaikus cilpas argumentu.

Kad tiek veikts pieprasījums, serverim jāpieņem pieprasījums un jāizveido faila objekts, lai ar to mijiedarbotos.

Šajā gadījumā serveris lasīšanai un rakstīšanai izmanto to pašu portu. Tāpēc makefile metodei tiek dots arguments “rw”. Bufera lieluma nulles garums vienkārši atstāj šo faila daļu dinamiski noteiktu.

Ja vien mēs nevēlamies izveidot vienas darbības serveri, nākamais solis ir nolasīt faila objekta ievadi. Kad mēs to darām, mums jābūt uzmanīgiem, lai noņemtu lieko atstarpi.

Pieprasījums tiks iesniegts darbības veidā, kam sekos lapa, protokols un izmantotā protokola versija. Ja vēlas apkalpot tīmekļa lapu, šī ievade tiek sadalīta, lai iegūtu pieprasīto lapu, un pēc tam lasa šo lapu mainīgā lielumā, kas pēc tam tiek ierakstīts kontaktligzdas faila objektā. Funkcija faila nolasīšanai vārdnīcā ir atrodama emuārā.

Lai šī apmācība būtu nedaudz ilustrējošāka par to, ko var darīt ar kontaktligzdas moduli, mēs atteiksimies no šīs servera daļas un parādīsim, kā var niansēt datu noformējumu. Ievadiet nākamās vairākas rindas programma.

Ja kāds sūta Web lapu, pirmā rinda ir jauks veids, kā ievadīt datus tīmekļa pārlūkprogrammā. Ja tas tiek izslēgts, lielākajai daļai tīmekļa pārlūkprogrammu renderēšana tiek veikta pēc noklusējuma HTML. Tomēr, ja kāds to iekļauj, seko “OK” divi jaunas līnijas rakstzīmes. Tos izmanto, lai atdalītu protokola informāciju no lapas satura.

Pirmās rindas sintakse, kā jūs droši vien varat secināt, ir protokols, protokola versija, ziņojuma numurs un statuss. Ja kādreiz esat apmeklējis vietni, kas ir pārvietojusies, iespējams, esat saņēmis kļūdu 404. 200 ziņojums šeit ir vienkārši apstiprinošs ziņojums.

Pārējā daļa ir vienkārši tīmekļa lapa, kas sadalīta vairākās rindās. Jūs ņemsit vērā, ka serveri var ieprogrammēt, lai izvadē izmantotu lietotāja datus. Pēdējā rindiņa atspoguļo tīmekļa pieprasījumu, kad serveris to ir saņēmis.

Visbeidzot, kā pieprasījuma slēgšanas akti, mums jāaizver faila objekts un servera ligzda.

Tagad saglabājiet šo programmu ar atpazīstamu vārdu. Pēc tam, kad esat to izsaucis ar “python program_name.py”, ja esat ieprogrammējis ziņojumu, kas apstiprina, ka pakalpojums darbojas, tas jāizdrukā uz ekrāna. Tad terminālis, šķiet, apturēs. Viss ir tā, kā tam vajadzētu būt. Atveriet savu interneta pārlūku un dodieties uz vietnihost: 8080. Pēc tam jums vajadzētu redzēt mūsu sniegto rakstīšanas komandu izvadi. Lūdzu, ņemiet vērā, ka vietas labad šajā programmā es neieviesu kļūdu apstrādi. Tomēr jebkurai “savvaļā” laistai programmai vajadzētu

instagram story viewer