WebSockets- ja reaaliaikaisten järjestelmien ohjelmointi · Oppitunti

WebSocket-kättelyn selitys

Tutkikaa HTTP-pohjaista kättelyprosessia, joka päivittää tavallisen HTTP-yhteyden WebSocket-yhteydeksi.

Oppitunti 1/410 vaihetta

WebSocket-kättelyn selitys on ilmainen WebSockets- ja reaaliaikaisten järjestelmien ohjelmointi-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu WebSockets- ja reaaliaikaisten järjestelmien ohjelmointi-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. WebSockets- ja reaaliaikaisten järjestelmien ohjelmointi-kurssilla on yhteensä 4 oppituntia.

Kättely: yhteyden päivitys

Kuvittele soittavasi ystävälle, mutta ennen keskustelua sovitte salaisesta kielestä. WebSocket-kättely toimii samalla tavalla!

Se on ratkaiseva alkuvaihe, jossa selaimesi (asiakas) ja palvelin sopivat tavallisen HTTP-yhteyden vaihtamisesta WebSocket-yhteydeksi.

HTTP:n rajoitusten ylittäminen

Perinteinen HTTP on suunniteltu lyhyitä, yksittäisiä pyyntöjä ja vastauksia varten. Ajattele verkkosivun lataamista: teet pyynnön, palvelin lähettää vastauksen ja yhteys sulkeutuu.

  • Yksisuuntainen: Asiakas tekee pyynnön, palvelin vastaa.
  • Lyhytkestoinen: Yhteys sulkeutuu jokaisen vuorovaikutuksen jälkeen.
  • Lisäkuorma: Jokainen uusi pyyntö edellyttää uuden yhteyden muodostamista.

WebSockets tarvitsee pysyvän kaksisuuntaisen väylän reaaliaikaisia tietoja varten.

Asiakas aloittaa päivityksen

Kättely alkaa, kun asiakas (selaimesi) lähettää palvelimelle tavallisen HTTP GET -pyynnön. Se ei kuitenkaan ole täysin ”tavallinen”!

Pyyntö sisältää erityisiä HTTP-otsakkeita, jotka ilmoittavat asiakkaan haluavan ”päivittää” yhteyden WebSocket-protokollaan. Se on kuin lisäisit puheluusi erityisen pyynnön salaiselle kielelle vaihtamisesta.

Vaihtoaikeen ilmoittaminen

Kaksi keskeistä otsaketta kertoo palvelimelle selvästi, että asiakas haluaa WebSocket-yhteyden:

  • Upgrade: websocket: Tämä otsake määrittää protokollan, johon asiakas haluaa vaihtaa.
  • Connection: Upgrade: Tämä yleinen HTTP-otsake ilmaisee, että asiakas haluaa päivittää tai vaihtaa protokollaa.

Yhdessä ne muodostavat päivityspyynnön ytimen.

Asiakkaan salainen avain

Toinen tärkeä asiakkaan lähettämä otsake on Sec-WebSocket-Key.

  • Se on 16-tavuinen satunnaisarvo, joka on koodattu Base64-muotoon.
  • Se toimii kullekin kättelylle yksilöllisenä ja ennakoimattomana ”nonce-arvona” (kerran käytettävänä lukuna).
  • Palvelin käyttää tätä avainta osoittaakseen ymmärtävänsä WebSocket-protokollaa ja estääkseen tietyntyyppiset välimuisti- tai välityspalvelinongelmat.

Protokollaversion tarkistus

Sec-WebSocket-Version-otsake on yksinkertainen mutta tärkeä.

Se kertoo palvelimelle, mitä WebSocket-protokollan versiota asiakas käyttää. Tällä hetkellä standardiversio on 13.

Näin varmistetaan, että asiakas ja palvelin puhuvat samaa WebSocket-kielen ”murretta”, mikä takaa yhteensopivuuden.

Palvelin vastaa: 101 Switching Protocols

Jos palvelin tukee WebSocketsia ja hyväksyy päivityksen, se lähettää asiakkaalle erityisen HTTP-vastauksen.

Vastauksen tärkein osa on HTTP-tilakoodi 101: Switching Protocols. Tämä koodi tarkoittaa nimenomaisesti, että palvelin vaihtaa asiakkaan pyytämään protokollaan.

Palvelimen vahvistusavain

Palvelimen vastaus sisältää myös keskeisiä otsakkeita:

  • Upgrade: websocket ja Connection: Upgrade: Nämä vahvistavat asiakkaan otsakkeita mukaillen, että palvelin hyväksyy päivityksen.
  • Sec-WebSocket-Accept: Tämä on palvelimen muodostama tiiviste, joka käyttää asiakkaan Sec-WebSocket-Key-avainta ja tiettyä ”taikamerkkijonoa”. Se osoittaa, että palvelin ymmärsi avaimen ja tukee WebSocketsia.

Kättelyavaimen tarkistus

Olet tutustunut WebSocket-kättelyssä käytettäviin tärkeisiin otsakkeisiin.

Minkä seuraavista otsakkeista asiakas lähettää WebSocket-päivityksen aloittamiseksi ja joka sisältää satunnaisen, yksilöllisen arvon?

Yhteys päivitetty ja valmis!

Kun asiakas vastaanottaa ja vahvistaa palvelimen 101-vastauksen, jossa on oikea Sec-WebSocket-Accept-otsake, HTTP-kättely on valmis!

Yhteys on nyt päivitetty täysdupleksiseksi WebSocket-yhteydeksi. Sekä asiakas että palvelin voivat lähettää ja vastaanottaa tietoja samanaikaisesti tämän pysyvän yhteyden kautta, mikä mahdollistaa aidon reaaliaikaisen viestinnän.

Aloita maksutta

Opi WebSockets- ja reaaliaikaisten järjestelmien ohjelmointi tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
12
Oppitunnit
47

Usein kysytyt kysymykset

Onko oppitunti ”WebSocket-kättelyn selitys” ilmainen?

Kyllä – oppitunnin ”WebSocket-kättelyn selitys” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko WebSockets- ja reaaliaikaisten järjestelmien ohjelmointi-kurssin, päivitä CoddyKit PROhon. WebSockets- ja reaaliaikaisten järjestelmien ohjelmointi-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”WebSocket-kättelyn selitys”?

Tutkikaa HTTP-pohjaista kättelyprosessia, joka päivittää tavallisen HTTP-yhteyden WebSocket-yhteydeksi. Harjoittelet WebSockets- ja reaaliaikaisten järjestelmien ohjelmointi-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni WebSockets- ja reaaliaikaisten järjestelmien ohjelmointi-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin WebSockets- ja reaaliaikaisten järjestelmien ohjelmointi-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”WebSocket-kättelyn selitys”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä WebSockets- ja reaaliaikaisten järjestelmien ohjelmointi-oppitunnilla?

Kyllä. Jokainen WebSockets- ja reaaliaikaisten järjestelmien ohjelmointi-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. WebSocket-kättelyn selitys
  2. WebSocket-datan kehystys ja viestit
  3. Yhteyden elinkaari ja tilat
  4. Aliprotokollat, laajennukset ja pakkaus
← Takaisin: WebSockets- ja reaaliaikaisten järjestelmien ohjelmointi