Gereksinimler: Her gün, web sayfaları veya uygulamaları açıldığında, gezdiğiniz bilgiler neredeyse her zaman HTTP veya HTTPS istek yanıtları gönderilerek erişilir. HTTP istekleri göndermek için Hypertext Transfer Protocol tabanlı C# ve yerel soketler kullanılır.
anlaşma
Hipermetin Aktarım Protokolü (HTTP), dağıtık, işbirlikçi hipermetin bilgi sistemleri için kullanılan durumsuz bir uygulama katmanı protokolüdür.
HTTP / 1.1 Protokolü (RFC 9112):Bağlantı girişi görünür. HTTP Anlam (RFC 9110):Bağlantı girişi görünür.
Örnek istek:
Örnek yanıt:
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
Merhaba Dünya! İçeriğimde takip eden bir CRLF var.
Soket istek gönderir
Kaynak kodu şöyledir:
Kaynak kodu, HTTP ve HTTPS protokollerine istek göndermeyi destekler. Aşağıda gösterildiği gibi:
Bağlantı: kapamak ve hayatta kalmak
Yanıttaki tüm verileri okumak için ReadToEndAsync kullanıyorsanız, Bağlantıyı kapatmaya ayarlamanız gerekir. Eğer onu canlı olarak ayarlarsanız, ReadToEndAsync yanıtı donar. Donmama nedenleri: Birçok web sunucusu (örneğin Nginx, Apache veya bazı API geçidleri), istemci bir soket yazmaya özen göstermemişse veya sunucu genellikle 5 saniyeye ayarlanmış boşta zaman aşımını tetiklerse, TCP bağlantısını kapatmak için FIN paketini aktif olarak başlatır.
HTTP boru hattı, aynı anda birden fazla istek gönderir:Bağlantı girişi görünür.
Transfer-Encoding: chunked 表示数据是以分块的形式传输的。每个数据块前面都有一个指示该块大小的十六进制数字,这个数字后面跟着一个换行符(CRLF),然后是实际的数据内容,再接着另一个换行符来结束这一块。这种编码方式允许服务器在不知道全部内容长度的情况下开始发送数据。
FDD8, aşağıdaki veri bloğunun boyutunu (bayt cinsinden) belirten öyle bir onaltılık sayıdır ki. fdd8'i onaltılıktan ondalık haline dönüştürdüğünde 65.016 bayt elde edilir. Bu, fdd8 ve CRLF'den hemen sonra 65.016 bayt veri olduğu anlamına gelir. Bundan sonra, 0 boyutlu bir blokla karşılaşılana kadar daha fazla veri bloğu olabilir ve bu iletimin tamamlandığını gösterir.
FDD8, alıcıya bir sonraki veri bloğunun 65.016 bayt uzunluğunda olduğunu bildirir. |