Fungere | Tovejs kommunikation via en TCP-forbindelse til webbrowsere |
---|---|
Forkortelse | ws |
Oprettelsesdato | 2011 |
Havn | 80 og 443 |
RFC | 6455 |
WebSocket er en webstandard, der udpeger en netværksprotokol for applikationslaget og en programmeringsgrænseflade på World Wide Web til at skabe full-duplex kommunikationskanaler via en TCP-forbindelse til webbrowsere. Protokollen blev standardiseret af IETF i RFC 6455 i 2011 og programmeringsgrænsefladen af W3C .
WebSocket-protokollen gør det muligt at åbne en tovejskommunikationskanal (eller " full-duplex ") kommunikationskanal på et TCP- stik til browsere og webservere . Mere specifikt tillader det derfor:
Den stigende interaktivitet af webapplikationer efter forbedring af browserens ydeevne gjorde det hurtigt nødvendigt at udvikle tovejskommunikationsteknikker mellem klientens webapplikation og serverprocesser. Teknikker baseret på anmodningskaldet fra klienten via XMLHttpRequest-objektet og brug af HTTP-anmodninger med en lang TTL- type, der er gemt af serveren til et efterfølgende svar på klienten, har gjort det muligt at overvinde denne mangel og er blevet populariseret af Ajax- arkitekturen. .
Ifølge computerforsker Stéphane Bortzmeyer tilbyder "WebSocket derfor praktisk talt den samme service til applikationer som TCP" , men har fordelen ved at omgå de mange mellemliggende hindringer for netværksstrømme ( firewalls osv.) I "junglen", der er blevet det moderne web . Ved at bruge HTTP-arkitektur (relæ, godkendelse, porte 80 og 443), meget lidt filtrering, til at oprette en ny transportprotokol, sigter skaberne af Websocket til at sikre en tovejs netværkskommunikation, der ikke længere var garanteret gennem TCP. Hovedbegrænsningen ved Websocket er, at det ikke er en generel protokol: kommunikation skal nødvendigvis ske via klientens webbrowser eller gennem bestemte dedikerede biblioteker (se afsnittet "Implementeringer" ).
WebSocket-programmeringsgrænsefladen blev udviklet inden for WHATWG .
Selve princippet om WebSocket blev anfægtet inden for specifikationsorganer under dets udvikling på vegne af det faktum, at det uden tvivl var bedre at løse filtreringsproblemerne i netværkslaget i stedet for at oprette en ny protokol over det. Af applikationslaget.
Der er opdaget en sikkerhedsfejl i API'en til tidlige versioner af websocket. Sikkerheden blev kompromitteret ved browsing ved at erstatte en JavaScript-fil med malware i løbet af håndtryksfasen . Da denne fejl er i selve API'et, kunne den ikke rettes af nogen programrettelse i browseren. I nogle versioner af browsere som Firefox 4 og 5, Opera 11 og Internet Explorer 9 er WebSocket blevet deaktiveret på grund af denne fejl.
Sikkerhedsfejlen i Firefox er blevet rettet fra Firefox 6 (Gecko 6.0-motor).
Internet Explorer implementerede websocket med IE10.
På Opera var det altid muligt at genaktivere websocket. Fra Opera 12 er websocket aktiveret.
Egenskaber | Krom | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Understøttelse af version -76 | 6 | 4,0 (2,0) | Ingen hjælp | 11.00 (deaktiveret) | 5.0.1 |
Protokol version 7 support | Ingen hjælp | 6.0 | Ingen hjælp | Ingen hjælp | Ingen hjælp |
Protokol version 10 support | 14 | 7,0 | HTML5 Labs | ? | ? |
Standard - RFC 6455 support | 16 | 11,0 | 10 | 12.10 | 6 |