Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 1|Odpoveď: 0

[Zdroj] .NET/C# používa Socket na odosielanie HTTP požiadaviek založených na protokole Hypertext Transfer Protocol

[Kopírovať odkaz]
ZverejnenéPred 44 sekundami | | | |
Požiadavky: Každý deň, pri otváraní webových stránok alebo aplikácií, informácie, ktoré prehliadate, sú takmer vždy prístupné odoslaním HTTP alebo HTTPS odpovedí na požiadavky. Použitie C# založeného na Hypertext Transfer Protocol a natívnych socketov na odosielanie HTTP požiadaviek.

dohoda

Hypertextový prenosový protokol (HTTP) je bezstavový aplikačný protokol používaný pre distribuované, kolaboratívne hypertextové informačné systémy.

HTTP / 1.1 protokol (RFC 9112):Prihlásenie na hypertextový odkaz je viditeľné.
HTTP sémantika (RFC 9110):Prihlásenie na hypertextový odkaz je viditeľné.

Príklad požiadavky:
ZÍSKAJTE /hello.txt HTTP/1.1
User-Agent: curl/7.64.1
Host: Prihlásenie na hypertextový odkaz je viditeľné.
Accept-Language: en, mi

Ukážková odpoveď:
HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
ETag: "34aa387-d-1568eb00"
Accept-Ranges: bytes
Content-Length: 51
Vary: Accept-Encoding
Content-Type: text/plain

Ahoj svet! Môj obsah zahŕňa trailing CRLF.

Socket posiela požiadavky

Zdrojový kód je nasledovný:
Zdrojový kód podporuje odosielanie požiadaviek na HTTP a HTTPS protokoly. Ako je uvedené nižšie:



Spojenie: blízko vs udržiavanie nažive

Ak použijete ReadToEndAsync na čítanie všetkých dát z odpovede, musíte nastaviť pripojenie na zatvorenie. Ak ho nastavíte na keep-alive, odpoveď ReadToEndAsync zamrzne. Dôvody, prečo nezamrzne: Mnohé webové servery (ako Nginx, Apache alebo niektoré API brány) aktívne iniciujú FIN paket na uzavretie TCP spojenia, ak klient natívne napíše socket bez následnej akcie, alebo ak server spustí časový limit nečinnosti (zvyčajne nastavený na 5 sekúnd).

HTTP pipeline, odosielanie viacerých požiadaviek súčasne:Prihlásenie na hypertextový odkaz je viditeľné.

Transfer-Encoding: chunked 表示数据是以分块的形式传输的。每个数据块前面都有一个指示该块大小的十六进制数字,这个数字后面跟着一个换行符(CRLF),然后是实际的数据内容,再接着另一个换行符来结束这一块。这种编码方式允许服务器在不知道全部内容长度的情况下开始发送数据。

FDD8 je také hexadecimálne číslo, ktoré určuje veľkosť nasledujúceho dátového bloku (v bajtoch). Prevod fdd8 z hexadecimálneho na desatinný vedie k 65 016 bajtom. To znamená, že bezprostredne po fdd8 a CRLF je 65 016 bajtov dát. Potom môže byť viac dátových blokov, až kým sa neobjaví blok veľkosti 0, čo naznačuje, že prenos je dokončený.

FDD8 informuje prijímača, že ďalší dátový blok má dĺžku 65 016 bajtov.




Predchádzajúci:Súhrn testovacieho miesta HTTP(s) (priebežne aktualizovaný)
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com