Maelezo mafupi ya itifaki ya HTTP. Makosa ya kawaida ya http na jinsi ya kurekebisha

Hitilafu ya "http" inaweza kutokea. Watu wengi huanza kuchambua yao vitendo vya hivi karibuni, iliyotolewa katika WordPress, lakini watu wengi hawajui kilichotokea, kwa sababu hakuna "mbaya" ilionekana kuwa imefanywa. Ikiwa unatazama majibu kwenye mtandao kwa swali "kwa nini inatoa kosa la http wakati wa kupakia picha," unaweza kupata mapendekezo kadhaa ambayo yanaweza kuondokana na kosa hili.

Mapendekezo ya kusaidia kutatua hitilafu wakati wa kupakua picha "http"

Pendekezo la kwanza ni kuangalia orodha nzima programu-jalizi zilizosakinishwa na kuzima zote zisizo za lazima. Utahitaji pia kuzima programu-jalizi zote na kuziwezesha moja baada ya nyingine, na kisha uangalie athari za kazi zao kwenye tovuti yako. Kwa hivyo, kupakia picha kunaweza kufanya kazi, lakini ni mbali na hakika kwamba utaweza kugundua programu-jalizi ambayo inatupa hitilafu. Ikiwa una muda na uvumilivu, jaribu pendekezo hili, lakini tumeona kuwa ni shida sana, kwa hiyo tuliacha chaguo hili kwa hifadhi.

Pendekezo la pili linasema kuwa shida nzima inaweza kuwa kwenye seva ambayo tovuti yako iko. Lakini ikiwa una tovuti zingine zinazofanya kazi na mhudumu huyu, na kila kitu kiko sawa nao kwa utaratibu kamili, ambayo inamaanisha kuwa kosa liko mahali fulani kwenye tovuti yenyewe. Ikiwa kuna tovuti moja tu, basi wasiliana na mhudumu, ikiwa tatizo liko pale.

Hapa tunaona pia kuwa sio busara kila wakati kusasisha toleo ambalo limetolewa hivi karibuni.

Kama sheria, ina ubunifu/sasisho nyingi muhimu, lakini sio watengenezaji wote wa programu-jalizi wana wakati wa kufanya marekebisho kwa bidhaa zao. Hiyo ni, ikiwa kila kitu kiko sawa na wewe sasa, basi hakuna maana ya kukimbilia kusasisha injini.

Kidokezo cha nne ni kuongeza msimbo ufuatao kwenye faili ya .htaccess:

SecFilterEngine Imezimwa
SecFilterScanPOST Imezimwa

Nambari iliyo hapo juu lazima iwekwe mwisho au mwanzo wa faili, baada ya hapo kila kitu kinaweza kuanza kufanya kazi.
Kidokezo kifuatacho ni kuingiza msimbo kwenye faili ya .htaccess kwa kutumia kipakiaji cha FTP:



SecFilterEngine Imezimwa
SecFilterScanPOST Imezimwa

Kumbuka kwamba ikiwa tayari unayo nambari kama hiyo kwenye faili, basi utahitaji kuiandika tena, ambayo ni, badala yake na mpya. Jaribu kupakua faili ya midia sasa; Kwa kuongeza, unaweza kupakia faili kwa idadi isiyo na kikomo. Tumeona mara kwa mara kwamba katika kesi moja, ikiwa utaweka msimbo mwanzoni mwa faili, kila kitu kitafanya kazi; wakati wa kubandika msimbo kwenye tovuti nyingine mwanzoni mwa faili, hakuna kilichofanya kazi, lakini kila kitu kilianza kufanya kazi mara tu msimbo ulipohamishwa hadi mwisho wa faili.

Inafaa kukumbuka kuwa baada ya kusasisha WordPress faili hii inaweza kuandikwa tena kwa urahisi na kosa linaweza kutokea tena. Ili kuzuia hili kutokea, tunapendekeza kuhifadhi faili ya chelezo kwenye kompyuta yako na, ikiwa kitu kitatokea, kuipakia kwenye seva kupitia FTP.

Pendekezo lingine ni kusakinisha programu-jalizi ya WPupload, ambayo inachukua nafasi ya kipakiaji chaguomsingi cha WordPress na mpya (inaauni HTML5, Flash, BrowserPlus, n.k.). Hata hivyo, programu-jalizi mpya inaweza kuongeza matatizo mapya kwenye tovuti, lakini, kwa hali yoyote, itaondoa kosa hili wakati wa kupakia picha za "http".

Kutoka kwa yote hapo juu, hitimisho rahisi ifuatavyo: ikiwa unataka tovuti yako kufanya kazi kwa utulivu, usikimbilie na . Toleo jipya ingawa inaahidi kufanya kazi zaidi na salama, ni watengenezaji wa chama cha tatu Hawana muda wa kuboresha bidhaa zao kwa matoleo mapya kila wakati (ndio maana hitilafu ya "http" inaweza kutokea).

Wakati mwingine hali hutokea wakati kivinjari kinaonyesha hitilafu wakati wa kuomba tovuti. Makosa kama haya yana nambari ya dijiti na maelezo maalum.

(101-199) Majibu ya habari

Majibu kama haya yanaonyesha kuwa ombi kutoka kwa mteja fulani limekubaliwa na linashughulikiwa moja kwa moja.

  • 100 - Endelea - sehemu ya kwanza ya ombi imekubaliwa, mteja anaweza kuendelea kuisambaza.
  • 101 - Kubadilisha Itifaki - huduma hutimiza mahitaji fulani ya mteja, na pia hubadilisha itifaki, ambayo inalingana na data kwenye uwanja wa kichwa cha Kuboresha.

(200-299) Maombi yenye mafanikio mteja

Katika safu hii, maombi yote ya mteja yamekamilishwa kwa mafanikio.

  • 200 - Sawa - usindikaji uliofanikiwa wa ombi la mteja, na majibu ya seva yana data zote zilizoombwa.
  • 201 - Imeundwa - nambari hii ya hali inaweza kutumika wakati wa kubadilisha URL. Mbali na msimbo, seva pia hutoa kichwa cha Mahali, ambacho kina taarifa zote kuhusu eneo la data zote mpya zinazohamia.
  • 202 - Imekubaliwa - ombi limekubaliwa, lakini halijashughulikiwa mara moja. Mwili wa maudhui ya majibu pia unaweza kuwa na taarifa fulani kuhusu muamala. Hakuna hakikisho kwamba ombi litakubaliwa, hata ikiwa lilikuwa halali wakati wa kuandikishwa.
  • 203 - Maelezo Yasiyo Ya Mamlaka - Kijajuu cha maudhui kina maelezo ambayo yalipatikana kutoka kwa nakala ya ndani au kutoka kwa mtu mwingine.
  • 204 - Hakuna Maudhui - jibu lina kichwa tu na msimbo wa hali, mwili wa majibu yenyewe haujatolewa. Wakati jibu kama hilo linapokelewa, hati ya kivinjari haipaswi kusasishwa. Msimbo unaweza kurudi baada ya mtumiaji kubofya sehemu tupu za picha.
  • 205 - Weka Upya Yaliyomo - fomu inayotumika kwa data ya ziada ya ingizo inafutwa na kivinjari.
  • 206 - Maudhui Sehemu - seva hurejesha tu sehemu fulani ya data. Inatumika katika jibu la ombi wakati wa kubainisha kichwa cha Masafa. Seva lazima ionyeshe katika kichwa cha Masafa ya Maudhui safu fulani, ambayo imejumuishwa katika majibu.

(300-399) Usambazaji

Nambari ya kujibu katika safu hii inamaanisha kuwa mteja lazima atekeleze vitendo fulani ili kukidhi ombi.

  • 300 - Chaguo Nyingi (chaguo kadhaa za kuchagua) - URL iliyoombwa inaweza kujumuisha rasilimali kadhaa. Mwili wa maudhui uliorejeshwa na seva lazima iwe na taarifa fulani kuhusu kufanya chaguo sahihi rasilimali.
  • 301 - Imehamishwa Kudumu (rasilimali imehamishwa hadi msingi wa kudumu) - seva haitumii tena URL inayohitajika, kwa hivyo operesheni iliyoainishwa katika ombi haifanyiki. Kijajuu cha Mahali hutoa taarifa kuhusu eneo jipya la hati iliyoombwa. Maombi yanayofuata lazima yabainishe URL mpya.
  • 302 - Imesogezwa kwa Muda (rasilimali imehamishwa kwa muda) - harakati ya muda ya URL iliyoombwa. Kijajuu cha Mahali hubainisha eneo jipya. Baada ya kupokea msimbo wa hali, mteja lazima atatue ombi kwa kutumia URL mpya, lakini atumie ya zamani pekee.
  • 303 - Angalia Nyingine (angalia nyenzo nyingine) - utafutaji wa URL iliyoombwa unafanywa kwa kubainisha URL nyingine, ambayo iko kwenye kichwa cha Mahali.
  • 304 - Haijabadilishwa - ni msimbo wa majibu kwa kichwa cha lf-Modified-Tangu ikiwa URL haijabadilika. Mwili wa maudhui haupo, kwa hivyo mteja lazima atumie nakala yake ya ndani.
  • 305 - Tumia Proksi (tumia seva mbadala) - rasilimali iliyoombwa lazima ifikiwe kupitia seva mbadala, ambayo imebainishwa katika sehemu ya Mahali. Sehemu hii pia ina URL ya seva mbadala inayohitajika. Ombi lazima lirudiwe kwa mpokeaji.

(400-499) Maombi ya wateja ambayo hayajakamilika

Nambari za kujibu katika safu hii zinaonyesha kuwa ombi la mteja halijakamilika. Inaweza pia kumaanisha kuwa mteja anahitaji kuingiza maelezo ya ziada.

  • 400 - Ombi baya(ombi lisilo sahihi) - seva haielewi ombi kwa sababu ya syntax iliyoharibika. Ombi linaweza kurudiwa, lakini tu baada ya marekebisho fulani kufanywa.
  • 401 - Haijaidhinishwa (hakuna ruhusa) - mtumiaji lazima athibitishe uhalisi wake. Jibu lazima liwe na sehemu ya kichwa cha WWW-Thibitisha na changamoto inayotumika kwa nyenzo iliyoombwa. Ombi linaweza kurudiwa, lakini kwa uga unaofaa wa kichwa cha Uidhinishaji. Ikiwa sehemu hii tayari ina mapendekezo ya uthibitishaji, msimbo wa hali ya 401 unaonyesha kuwa mapendekezo kama haya hayafai kwa uthibitishaji.
  • 402 - Malipo Yanahitajika - Nambari imehifadhiwa na itatumika katika siku zijazo, lakini bado haijatekelezwa katika HTTP.
  • 403 - Imepigwa marufuku (ufikiaji umekataliwa) - ombi limekataliwa, kwa hivyo seva haiwezi kujibu mteja.
  • 404 - Haipatikani(rasilimali haipatikani) - URL iliyobainishwa haipo tena hati inayohitajika, yaani, seva haikupata chochote kinachoweza kufanana na ombi hili.
  • 405 - Mbinu Hairuhusiwi - Kichwa cha Ruhusu kinaonyesha kuwa mbinu inayotumiwa na mteja haitumiki.
  • 406 - Haikubaliki - Nyenzo iliyotambuliwa inaweza tu kuzalisha vitu vilivyo na sifa ya maudhui ambayo hailingani na vichwa vya kukubalika.
  • 407 - Uthibitishaji wa Wakala Unahitajika (usajili na seva mbadala unahitajika) - inaonyesha hitaji la kuthibitisha mteja kwa seva mbadala. Seva ya proksi hurejesha sehemu ya kichwa ya Proksi-Thibitisha iliyo na changamoto mahususi. Ombi linaweza kurudiwa, lakini tu ikiwa uga unaofaa wa kichwa umebainishwa.
  • 408 - Muda wa Ombi Umekwisha (muda wa uchakataji wa ombi umekwisha) - ombi halijakamilishwa na mteja wakati seva inasubiri. Ombi linaweza kurudiwa baadaye.
  • 409 - Migogoro - Ombi haliwezi kushughulikiwa kwa sababu kuna mgongano na hali ya rasilimali. Mtumiaji anatarajiwa kusuluhisha mzozo huo na kuwasilisha ombi upya.
  • 410 - Imepita (rasilimali haipo tena) - URL iliyoombwa haipatikani tena kwenye seva.
  • 411 - Urefu Unaohitajika (urefu lazima ubainishwe) - ombi halikubaliwi na seva kwa sababu Urefu wa Maudhui haujafafanuliwa. Ombi linaweza kurudiwa kwa kubainisha urefu wa chombo cha ujumbe katika sehemu ya kichwa cha Urefu wa Maudhui.
  • 412 - Masharti Yameshindikana - Ombi halichakatwa na seva kwa sababu kitu cha ombi ni kikubwa zaidi kuliko kinaweza kushughulikia. Katika hali hii, inawezekana kufunga uhusiano. Ikiwa hali hii ni ya muda, basi seva hubainisha muda katika kichwa cha Jaribu tena baada ya hapo mteja anaweza kujaribu tena.
  • 413 - Ombi la Huluki Kubwa Sana (kipengele kilichoombwa ni kikubwa mno) - ombi halichakatwa na seva kutokana na ukubwa wake mkubwa.
  • 414 - Ombi-URI Muda Mrefu Sana (kitambulisho cha rasilimali katika ombi ni kirefu sana) - ombi halichakatwa na seva kwa sababu URL yake ni ndefu sana.
  • 415 - Aina ya Midia Isiyotumika (aina ya kifaa kisichotumika) - seva ilikataa kuhudumia ombi kwa sababu nyenzo iliyoombwa haiauni umbizo la kitu cha ombi.

(500-599) Hitilafu za seva

Masafa haya yanaonyesha kuwa kuna uwezekano mkubwa kwamba ombi litashindwa kwa sababu seva ilikumbana na hitilafu mahususi.

  • 500 - Ndani Hitilafu ya Seva (Hitilafu ya ndani server) - Wakati wa kushughulikia ombi, moja ya vipengee vya seva ilikumbana na hitilafu maalum ya usanidi.
  • 501 - Haijatekelezwa (kazi haijatekelezwa) - ombi la mteja haliwezi kutimizwa kwa sababu ombi linahitaji usaidizi kwa baadhi. utendakazi. Inaweza kutolewa wakati seva haiwezi kutambua mbinu ya ombi.
  • 502 - Mlango Mbaya(kasoro ya lango) - seva, wakati wa kufanya kazi kama seva ya wakala, ilipokea jibu lisilo sahihi katika mlolongo wa ombi kutoka kwa seva inayofuata.
  • 503 - Huduma Haipatikani - Huduma haipatikani kwa muda, lakini ufikiaji unaweza kuendelea baada ya muda. Ikiwa seva ina data fulani, inaweza kutoa jibu kwa kichwa cha Jaribu tena Baada ya.
  • 504 - Muda wa Kuisha kwa Lango (muda unaopitishwa kwenye lango umekwisha) - lango au seva imepita kikomo cha muda.
  • 505 - Toleo la HTTP Halitumiki ( toleo lisilotumika HTTP) - toleo halitumiki na seva Itifaki ya HTTP, ambayo ilitumika katika ombi.

HTTP ( Uhamisho wa HyperText Itifaki - Itifaki ya Uhamisho wa Maandishi ya Juu) ilitengenezwa kama msingi Ulimwenguni Pote Mtandao.

Itifaki ya HTTP inafanya kazi kama ifuatavyo: programu ya mteja huanzisha muunganisho wa TCP na seva ( Chumba cha kawaida port-80) na inatoa ombi la HTTP kwake. Seva huchakata ombi hili na hutoa jibu la HTTP kwa mteja.

Muundo wa ombi la HTTP

Ombi la HTTP lina kichwa cha ombi na mwili wa ombi, ikitenganishwa na laini tupu. Mwili wa ombi unaweza kukosa.

Kichwa cha ombi kina mstari kuu (wa kwanza) wa ombi na mistari inayofuata ambayo inafafanua ombi katika mstari kuu. Mistari inayofuata inaweza pia kukosa.

Swala kuu la mstari lina sehemu tatu, zikitenganishwa na nafasi:

Njia(kwa maneno mengine, amri ya HTTP):

PATA- ombi la hati. Njia inayotumiwa zaidi; katika HTTP/0.9, wanasema, alikuwa peke yake.

KICHWA- ombi la kichwa cha hati. Inatofautiana na GET kwa kuwa tu kichwa cha ombi kilicho na habari kuhusu hati ndicho kinachorejeshwa. Hati yenyewe haijatolewa.

POST- njia hii hutumiwa kuhamisha data kwa hati za CGI. Data yenyewe inaonekana katika mistari inayofuata ya ombi kwa namna ya vigezo.

WEKA- weka hati kwenye seva. Kwa kadiri ninavyojua, haitumiki sana. Ombi na njia hii lina mwili ambao hati yenyewe hupitishwa.

Rasilimali- hii ndio njia faili maalum kwenye seva ambayo mteja anataka kupokea (au mahali - kwa njia ya PUT). Ikiwa rasilimali ni faili fulani ya kusomwa, seva lazima iirejeshe katika shirika la majibu kwa ombi hili. Ikiwa hii ndio njia ya hati ya CGI, basi seva huendesha hati na kurudisha matokeo ya utekelezaji wake. Kwa njia, shukrani kwa umoja huu wa rasilimali, mteja ni kivitendo tofauti na kile anachowakilisha kwenye seva.

Toleo la itifaki-toleo la itifaki ya HTTP ambayo programu ya mteja hufanya kazi.

Kwa hivyo ombi rahisi la HTTP linaweza kuonekana kama hii:

Hii inaomba faili ya mizizi kutoka kwa saraka ya mizizi ya seva ya wavuti.

Mistari baada ya safu kuu ya hoja ina muundo ufuatao:

Parameta: thamani.

Hivi ndivyo vigezo vya ombi vimewekwa. Hii ni ya hiari; mistari yote baada ya laini kuu ya hoja inaweza kukosa; katika kesi hii, seva inakubali thamani yao kwa default au kulingana na matokeo ya ombi la awali (wakati wa kufanya kazi katika hali ya Kuweka-Uhai).

Nitaorodhesha baadhi ya vigezo vya ombi vya HTTP vinavyotumika sana:

Uhusiano(muunganisho) - inaweza kuchukua maadili Keep-Hai na kufunga. Keep-Ave ina maana kwamba baada ya kutoa hati hii, muunganisho kwenye seva haujavunjwa, na maombi zaidi yanaweza kutolewa. Vivinjari vingi hufanya kazi katika hali ya Kuweka-Uhai, kwani hukuruhusu "kupakua" ukurasa wa html na picha zake katika unganisho moja kwenye seva. Baada ya kuweka, hali ya Weka-Uhai hudumishwa hadi hitilafu ya kwanza au hadi Muunganisho unaofuata: ombi la kufunga limebainishwa wazi.
funga ("funga") - uunganisho umefungwa baada ya kujibu ombi hili.

Mtumiaji-Wakala- thamani ni "msimbo" wa kivinjari, kwa mfano:

Mozilla/4.0 (inayotangamana; MSIE 5.0; Windows 95; DigExt)

Kubali- orodha ya aina za yaliyomo zinazoungwa mkono na kivinjari kwa mpangilio wa upendeleo wao kwa kivinjari fulani, kwa mfano kwa IE5 yangu:

Kubali: picha/gif, picha/x-xbitmap, picha/jpeg, picha/pjpeg, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, */*

Kwa kweli hii ni muhimu kwa kesi wakati seva inaweza kutoa hati sawa katika fomati tofauti.

Thamani ya kigezo hiki hutumiwa hasa na hati za CGI kutoa jibu lililorekebishwa kwa kivinjari fulani.

Mrejeleaji- URL ambayo ulitoka kwa nyenzo hii.

Mwenyeji- jina la mwenyeji ambaye rasilimali imeombwa. Inafaa ikiwa seva ina seva kadhaa pepe chini ya anwani sawa ya IP. Katika kesi hii, jina seva pepe kuamuliwa na uwanja huu.

Kubali-Lugha- lugha inayoungwa mkono. Ni muhimu kwa seva ambayo inaweza kutoa hati sawa katika matoleo tofauti ya lugha.

Muundo wa majibu ya HTTP

Umbizo la majibu linafanana sana na umbizo la ombi: pia lina kichwa na mwili uliotenganishwa na mstari tupu.

Kichwa pia kina mstari kuu na mistari ya parameta, lakini muundo wa mstari kuu ni tofauti na ule wa kichwa cha ombi.

Mfuatano mkuu wa hoja una sehemu 3 zilizotenganishwa na nafasi:

Toleo la itifaki- sawa na parameter ya ombi sambamba.

Msimbo wa hitilafu- uteuzi wa nambari ya "mafanikio" ya ombi. Msimbo wa 200 unamaanisha "kila kitu ni cha kawaida" (Sawa).

Maelezo ya maneno ya kosa- "kufafanua" msimbo uliopita. Kwa mfano, kwa 200 ni sawa, kwa 500 - Seva ya Ndani Hitilafu.

Vigezo vya kawaida vya majibu ya http:

Uhusiano- sawa na parameter ya ombi sambamba.
Ikiwa seva haiauni Keep-Alive (kuna baadhi), basi thamani ya Muunganisho katika jibu huwa karibu kila wakati.

Kwa hivyo, kwa maoni yangu, mbinu sahihi ya kivinjari ni ifuatayo:
1. suala Muunganisho: Weka-Hai katika ombi;
2. Hali ya uunganisho inaweza kuhukumiwa na uwanja wa Uunganisho katika jibu.

Aina ya Maudhui("aina ya maudhui") - ina sifa ya aina ya maudhui ya jibu.

Kulingana na thamani ya Aina ya Yaliyomo, kivinjari hutafsiri majibu kama ukurasa wa HTML, picha ya gif au jpeg, kama faili ya kuhifadhiwa kwenye diski, au chochote, na kuchukua hatua zinazofaa. Thamani ya Aina ya Maudhui kwa kivinjari ni sawa na thamani ya kiendelezi cha faili kwa Windows.

Baadhi ya aina za maudhui:

maandishi / html - maandishi katika muundo wa HTML (ukurasa wa wavuti);
maandishi / wazi - maandishi wazi (sawa na Notepad);
picha / jpeg - picha katika muundo wa JPEG;
picha / gif - sawa, katika muundo wa GIF;
application/octet-stream - mkondo wa "pweza" (yaani byte tu) kuandika kwa diski.

Kwa kweli kuna aina nyingi zaidi za yaliyomo.

Urefu wa Maudhui("urefu wa maudhui") - urefu wa maudhui ya majibu kwa baiti.

Iliyorekebishwa Mwisho("Imebadilishwa kuwa mara ya mwisho") - tarehe mabadiliko ya mwisho hati.

Kuhusiana na mabadiliko makubwa ya tovuti hadi HTTPS, watengenezaji na wasimamizi wa tovuti walikabiliwa na matatizo kadhaa mapya. Mojawapo ni kuelekeza kwingine kutoka HTTP hadi HTTPS na hitaji la kushughulikia ipasavyo uelekezaji kwingine kwa anwani ya tovuti ya kisheria ili kuepuka nakala za maudhui.

HTTPS na uelekezaji kwingine

Hebu tuangalie mfano. Wacha tuseme tuna tovuti dnsimple.com. Yake ya kisheria URL - https://dnsimple.com. Hata hivyo, kuna nne njia tofauti, ambayo unaweza kuunganisha kwenye tovuti, na unahitaji kuhakikisha kwamba kwa yeyote kati yao mtumiaji anaelekezwa kwa https://dnsimple.com:

Njia ya asili Aina
http://dnsimple.com HTTP + no-www
https://dnsimple.com HTTPS + no-www
http://www.dnsimple.com HTTP + www
https://www.dnsimple.com HTTPS + www

Kusanidi uelekezaji upya wa htaccess kutoka HTTP hadi HTTPS mara nyingi huwa chanzo cha mkanganyiko. Sio wazi kila wakati jinsi ya kuchakata kwa usahihi uelekezaji kwingine kutoka kwa WWW hadi isiyo ya WWW (au kinyume chake) kupitia HTTPS, na kwa nini hii inahitaji Cheti cha SSL/TLS. Ili kusanidi uelekezaji upya huu ipasavyo, unahitaji kuelewa kanuni za msingi za uchakataji wa ombi la HTTPS.

Ifuatayo, tutaangalia utaratibu ambao uunganisho umeanzishwa kupitia itifaki ya HTTPS, jinsi maombi ya HTTP yanashughulikiwa na kuanzisha uelekezaji upya kwa usaidizi wa HTTPS.

Mtiririko wa ombi la HTTPS

Picha iliyo hapo juu inaonyesha mchoro wa mtiririko wa ombi/majibu ya HTTPS. Kwa unyenyekevu, tumegawanya vitendo vyote katika awamu tatu:

  1. Katika hatua ya kwanza, mteja na seva hukubaliana juu ya maelezo ya usimbaji fiche, kama vile itifaki ya usimbaji fiche na suti ya msimbo. Taarifa muhimu ili kubadili kwenye muunganisho salama pia hutokea: funguo za umma, maelezo ya cheti, n.k. Awamu hii inaitwa " Kupeana mkono kwa SSL/TLS»;
  2. Katika hatua ya pili, mteja huandaa ombi la HTTP, huificha na kuituma kwa seva kwa usindikaji. Seva hupokea ombi la HTTP lililosimbwa kwa njia fiche, hulisimbua, huchakata na kutoa jibu la HTTP (jibu);
  3. Katika hatua ya tatu, seva husimba jibu kwa njia fiche na kuituma kwa mteja kwa usindikaji. Mteja hupokea jibu lililosimbwa la HTTP, hulichambua na kulichakata ( kwa mfano, kivinjari huanza kupakia na kuonyesha vipengele).

Mchoro huu wa mtiririko wa kuelekeza kwingine wa HTTP hadi HTTPS hutumika kwa ombi lolote, bila kujali maudhui ya jibu la HTTP.

Hapo juu niliandika Ombi la HTTP na majibu ya HTTP kwa madhumuni fulani ( kumbuka kuwa nilitumia HTTP na sio HTTPS) Kwa upande wa yaliyomo na muundo, ni muhimu kuelewa kwamba ombi la HTTPS ni ombi la HTTP, lakini hupitishwa kupitia muunganisho salama ( TLS/SSL).

Mazungumzo na maelekezo mengine ya HTTPS

Mojawapo ya makosa ya kawaida wakati wa kusanidi uelekezaji kwingine wa HTTPS ni kudhani kuwa huhitaji cheti cha SSL unapoelekeza upya mteja kutoka kikoa kimoja hadi kingine.

Ukiangalia mtiririko wa ombi, unaweza kuona kwamba ubadilishanaji wa vyeti vya SSL na mazungumzo ya usimbaji fiche hufanywa katika hatua ya kwanza. Kumbuka kuwa katika hatua hii seva haijui ni ukurasa gani mteja anahitaji: mteja na seva huamua jinsi ya kuingiliana na kila mmoja.

Baada ya kukamilika kwa hatua ya kwanza, wakati mteja na seva wamepata lugha ya pamoja (itifaki ya usimbaji fiche), wanaweza kuanza kuwasiliana wao kwa wao kwa kutumia muunganisho uliosimbwa kwa njia fiche. Katika hatua hii, mteja hutuma ombi la HTTP kwa seva, na seva hutuma jibu la HTTP lililo na uelekezaji upya.

Usisahau kwamba kuelekeza upya ni jibu la HTTP na nambari 301 (wakati mwingine 302 au 307):

HTTP/1.1 301 Seva Imehamishwa Kabisa: nginx Tarehe: Mon, 01 Aug 2016 14:41:25 GMT Mahali: https://dnsimple.com/

Kabla ya kuelekeza kwingine kutoka HTTPS hadi HTTP, kumbuka kwamba ikiwa unahitaji kuunda uelekezaji upya kwa kikoa kizima, unahitaji cheti halali cha SSL kwa kikoa kilichoelekezwa kwingine. Majadiliano ya usimbaji fiche yanahitaji cheti cha SSL na hutokea kabla ya ombi kuchakatwa na jibu la kuelekeza kwingine kurejeshwa kwa mteja.

Ikiwa mambo yangetokea kwa njia tofauti, uelekezaji upya ungechakatwa kabla ya kuangalia cheti cha SSL. Kisha mteja na seva italazimika kuwasiliana kwa kutumia muunganisho wa kawaida wa HTTP, ambao haujasimbwa kwa njia fiche.

Ikiwa unahitaji kuelekeza upya mteja kutoka ukurasa wowote katika kikoa https://www.example.com hadi nyingine, unahitaji cheti halali cha SSL kilichosakinishwa kwenye seva, ambacho kinatumika kwa kikoa kizima www.example.com.

Kwa mfano, ili kuelekeza upya mteja kutoka https://www.example.com hadi https://example.com, ni lazima uwe na cheti ambacho kinajumuisha vyeti vyote viwili au viwili tofauti ( kwa kila mwenyeji kwa mtiririko huo).

Mikakati ya kuelekeza kwingine kwa HTTPS

Tuliangalia jinsi uelekezaji upya kutoka HTTP hadi HTTPS unachakatwa kupitia htaccess baada ya mazungumzo ya SSL / TLS. Pia tuligundua kuwa ili kuelekeza wateja upya kutoka kwa tovuti au ukurasa hadi HTTPS, unahitaji cheti halali cha SSL ambacho kinashughulikia vikoa vyote viwili. Ifuatayo nitazungumzia mikakati ya jumla Mipangilio ya kuelekeza kwingine kwa HTTPS.

Kuna aina mbili za kusanidi uelekezaji upya na HTTPS:

  1. Elekeza kwenye kiwango cha seva;
  2. Uelekezaji upya katika kiwango cha maombi.

Neno la seva linarejelea seva yoyote ambayo inakaa mbele ya programu ya wavuti na kushughulikia ombi linaloingia la HTTP. Kwa mfano, seva ya mbele, seva ya kusawazisha mzigo au programu moja.

Neno maombi huashiria programu ya wavuti, ambayo inaweza kuwa rahisi kama hati ya PHP au ngumu zaidi, kama vile programu ya Unicorn ya upande wa seva inayotafsiri Ruby on Rails.

Inatekeleza uelekezaji upya wa HTTPS katika kiwango cha seva

Kutekeleza uelekezaji kwingine wa HTTPS katika kiwango cha seva ni vyema. Katika hali hii, seva ambayo cheti cha SSL kimesakinishwa inakubali ombi la HTTP lililosimbwa kwa njia fiche na kurudisha jibu la kuelekeza kwingine kwa HTTP kulingana na vigezo vya usanidi, bila kuunganisha kwenye seva ya programu au kutekeleza msimbo wa programu.


Mbinu hii ni ya haraka kwa sababu seva inaweza kushughulikia uelekezaji upya bila kuingiliana na programu. Wakati huo huo, usanidi wa seva ni rahisi kubadilika kuliko kile kinachoweza kufanywa kwa kutumia lugha kamili ya programu.
htaccess HTTP kuelekeza kwingine kwenye HTTPS katika kiwango cha seva hutumiwa kwa uelekezaji kwingine kwa wingi. Kwa mfano, kuelekeza upya kutoka kwa WWW hadi toleo lisilo la WWW la kikoa chenye HTTPS (au kinyume chake).

Kijisehemu cha msimbo kifuatacho ni mfano Mipangilio ya Nginx, ambayo inabainisha kuelekezwa upya kutoka kwa http://example.com, http://www.example.com na https://www.example.com hadi https://example.com:

seva ( sikiliza 80; server_name example.com www.example.com; rudisha 301 https://example.com$request_uri; ) seva ( sikiliza 443 ssl; server_name example.com www.example.com; # ssl usanidi ssl umewashwa; ssl_certificate /path/to/certificate.crt; ssl_certificate_key /path/to/private.key; ikiwa ($http_host = www.example.com) ( rudisha 301 https://example.com$request_uri; )

Kutekeleza uelekezaji kwingine katika kiwango cha seva ni vyema, lakini haiwezekani kila wakati kwa vile unaweza kukosa ufikiaji wa usanidi wa seva. Hii inatumika kwa upangishaji pamoja au majukwaa kama vile Heroku, Azure au Google Platform.

Inatekeleza uelekezaji upya wa HTTPS katika kiwango cha programu

Wakati huna ufikiaji wa usanidi wa seva, au mantiki ya kuelekeza kwingine ni ngumu zaidi, unahitaji kushughulikia uelekezaji upya wa HTTP hadi HTTPS katika kiwango cha programu.


Njia hii ni polepole kidogo kwa sababu seva lazima ikubali ombi, kushughulikia nambari ya maombi ( au kuingiliana na seva ya programu) na kurudisha majibu.

Jinsi uelekezaji kwingine unafanywa katika kiwango cha programu inategemea lugha ya programu na stack inayotumika. Hapa kuna baadhi ya mifano.

Kifurushi cha Goland na wavu/http

Unaweza kutumia http.Redirect.

Ruby kwenye reli

Unaweza kusanidi kuelekeza kwenye kiwango cha router, tumia kati programu Rack au redirect_to mbinu ndani ya kidhibiti:

contraints(mwenyeji: /www.example.com/) pata "*", kwa: kuelekeza ("https://example.com") mwisho

PHP

Tumia kazi ya kichwa kutuma kichwa cha kuelekeza kwingine cha HTTP:

Katika baadhi ya matukio hii ndiyo njia pekee inayowezekana. Kwa mfano, ikiwa unahitaji kuelekeza wateja kutoka WWW hadi toleo lisilo la WWW la kikoa, kutoka HTTPS hadi Heroku au Azure (au kinyume chake), basi itabidi ubainishe vikoa vyote viwili katika programu moja, usakinishe cheti na mchakato. kuelekeza kwingine katika kiwango cha maombi kupitia masharti.

Njia mbadala za kutekeleza uelekezaji kwingine wa HTTPS

Kuna kadhaa njia mbadala kuelekeza upya kutoka HTTP hadi HTTPS.

Katika hali zingine, hakuna ufikiaji wa usanidi wa seva, na jukwaa ambalo tovuti inapangishwa hairuhusu matumizi ya lugha ya programu. Kama mfano wa kawaida Unaweza kutumia Amazon S3 kwa kukaribisha tovuti tuli. Katika kesi hii, unahitaji kujua ikiwa jukwaa hutoa vigezo vya kuelekeza kwingine vya HTTPS ambavyo unaweza kusanidi.

Chaguo jingine ni kutumia programu inayojitegemea ya kuelekeza kwingine. Kwa mfano, ikiwa unahitaji kuelekeza wateja kutoka https://alpha.com hadi https://beta.com. Kisha kwa kikoa cha alpha.com unaweza kubainisha huduma nyingine au seva inayopangisha beta.com kama DNS. Unaweza pia kusanidi uelekezaji upya kwenye kiwango cha seva au usakinishe programu ambayo itafanya kazi kama kielekeza upya. Katika hali hii, unahitaji pia cheti halali cha alpha.com, ambacho kitasakinishwa ambapo uelekezaji upya unahitaji kutekelezwa.

Upau wa anwani katika vivinjari mara nyingi hauvutii isipokuwa unahitaji kufuata kiungo kilichonakiliwa kutoka mahali fulani hadi kwenye ubao wa kunakili. Wakati mwingine tunaangalia hapo ili kuhakikisha kuwa mpito ni sahihi, haswa katika hali zenye uelekezaji upya wa haraka na usio waaminifu. Lakini tukiangalia, wakati mwingine tunaona hali isiyo ya kawaida: kuna aina fulani ya kufuli inayoning'inia, rangi ya fonti ni tofauti, na kwa sababu fulani badala ya http:// ya kawaida tunaona https://. Haiwezekani kuelewa mara moja ikiwa ilichukuliwa mahali fulani, au kitu kimebadilika ulimwenguni, au ikiwa kumbukumbu inashindwa. Hebu jaribu kufikiri.

Ufafanuzi

HTTPitifaki ya maombi usambazaji wa data unaotumika kupata habari kutoka kwa wavuti.

HTTPS- Kiendelezi cha itifaki ya HTTP kinachotumia usimbaji fiche kwa Itifaki za SSL na TLS.

Kulinganisha

Tofauti kati ya HTTP na HTTPS tayari inaonekana kutoka kwa ufafanuzi. HTTPS si itifaki huru ya kuhamisha data, lakini HTTP yenye programu jalizi ya usimbaji fiche. Hii ndio ufunguo na tofauti pekee. Ikiwa kulingana na itifaki Data ya HTTP husambazwa bila ulinzi, basi HTTPS itatoa ulinzi wa kriptografia. Hii inatumika ambapo idhini inawajibika: kwenye tovuti za mfumo wa malipo, huduma za posta, katika mitandao ya kijamii.

Ikiwa data haijalindwa kupitia SSL, basi programu ya kiingiliaji iliyozinduliwa kwa wakati usiofaa inaruhusu mvamizi kuitumia. Kitaalam, utekelezaji wa HTTPS ni ngumu zaidi: kwa hili, tovuti iliyolindwa lazima iwe na cheti cha seva kinachotumika, ambacho mtumiaji anakubali au hakubali. Cheti hiki kimesakinishwa kwenye seva inayochakata miunganisho. Data zote mbili zilizopokelewa na mteja na data iliyopokelewa kutoka kwake zimesimbwa. Vifunguo vya usimbaji fiche hutumika kuthibitisha kuwa mteja sahihi anazipokea na kuzitoa.

Mwingine tofauti ya kiufundi— katika bandari zinazotumika kwa ufikiaji kupitia itifaki za HTTP na HTTPS. Ya kwanza kawaida huingiliana na bandari 80, ya pili na bandari 443. Msimamizi anaweza kufungua bandari nyingine kwa madhumuni sawa, lakini hazitafanana kamwe.

Tovuti ya hitimisho

  1. HTTP ndiyo itifaki ya uhamishaji data yenyewe, HTTPS ni kiendelezi cha itifaki hii.
  2. HTTPS inatumika kwa mawasiliano yaliyosimbwa kwa njia fiche.
  3. HTTPS pia hutumiwa kwa idhini kwenye seva zinazohitaji kuongezeka kwa umakini kwa usalama wa data.
  4. HTTP hufanya kazi kwenye bandari 80, HTTPS kwenye bandari 443.