Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 1|Vastaus: 0

[Lähde] .NET/C# käyttää Socketia HTTP(s)-pyyntöjen lähettämiseen Hypertext Transfer Protocolin pohjalta

[Kopioi linkki]
Julkaistu44 sekuntia sitten | | | |
Vaatimukset: Joka päivä, kun avaat verkkosivuja tai sovelluksia, selaamasi tieto pääsee lähes aina käsiksi HTTP- tai HTTPS-pyyntövastauksilla. Käytetään C#:a, joka perustuu Hypertext Transfer Protocoliin, sekä natiivisoketteja HTTP-pyyntöjen lähettämiseen.

sopimus

Hypertext Transfer Protocol (HTTP) on tilaton sovelluskerroksen protokolla, jota käytetään hajautetuissa, yhteistyöhön perustuvissa hypertekstitietojärjestelmissä.

HTTP / 1.1 -protokolla (RFC 9112):Hyperlinkin kirjautuminen on näkyvissä.
HTTP-semantiikka (RFC 9110):Hyperlinkin kirjautuminen on näkyvissä.

Esimerkkipyyntö:
GET /hello.txt HTTP/1.1
User-Agent: curl/7.64.1
Host: Hyperlinkin kirjautuminen on näkyvissä.
Accept-Language: en, mi

Esimerkkivastaus:
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

Moi maailma! Sisältöni sisältää jälkikäteen tulevan CRLF:n.

Socket lähettää pyyntöjä

Lähdekoodi on seuraava:
Lähdekoodi tukee pyyntöjen lähettämistä HTTP- ja HTTPS-protokolliin. Kuten alla on esitetty:



Yhteys: läheltä vs. pysy hengissä

Jos käytät ReadToEndAsyncia lukeaksesi kaiken vastauksen datan, sinun täytyy asettaa yhteys sulkeutumaan. Jos asetat sen säilytettäväksi, ReadToEndAsync-vastaus jäätyy. Syyt jäätymättömyyteen: Monet web-palvelimet (kuten Nginx, Apache tai tietyt API-yhdyskäytävät) käynnistävät aktiivisesti FIN-paketin TCP-yhteyden sulkemiseksi, jos asiakas on natiivisti kirjoittamassa sokettia ilman seuraavia toimintoja, tai jos palvelin käynnistää lepotilan aikakatkaisun (yleensä 5 sekuntiin).

HTTP-putkisto, joka lähettää useita pyyntöjä samanaikaisesti:Hyperlinkin kirjautuminen on näkyvissä.

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

FDD8 on sellainen heksadesimaaliluku, joka määrittää seuraavan tietolohkon koon (tavuina). Kun fdd8 muunnetaan heksadesimaalista desimaaliksi, saadaan 65 016 tavua. Tämä tarkoittaa, että heti fdd8:n ja CRLF:n jälkeen on 65 016 tavua dataa. Tämän jälkeen datablokkeja voi olla enemmän, kunnes kohtaa 0-kokoisen lohkon, mikä osoittaa siirron valmistumisen.

FDD8 kertoo vastaanottimelle, että seuraava datalohko on 65 016 tavua pitkä.




Edellinen:HTTP(s) testipaikan yhteenveto (jatkuvasti päivittyvä)
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com