Cât de mult este generată cheltuială suplimentară atunci când trimiteți un fișier pe un serviciu web ca o matrice octet?

Această întrebare și răspuns arată modul de trimitere a unui fișier ca array de octeți printr-o rețea xml serviciu. Cât de mult este generată cheltuiala prin utilizarea acestei metode pentru transferul de fișiere? Presupun că datele arată cam așa:

<?xml version="1.0" encoding="UTF-8" ?>

    16
    28
    127
    ...

Dacă acest format este corect, octeții trebuie mai întâi să fie convertiți în caractere UTF-8. Fiecare dintre aceste caractere alocă 8 octeți. Sunt octeții stocați în caractere de bază 10, hexați sau binare? Cât de mare este afișarea fișierului în timp ce acesta este trimis din cauza datelor xml și codarea caracterelor? Este compresia integrată în serviciile web?

0
fr hi bn

5 răspunsuri

De obicei, o matrice octet este trimisă ca șir codificat base64 , nu ca octeți individuali în etichete.

http://ro.wikipedia.org/wiki/Base64

Versiunea base64 codată este de aproximativ 137% din dimensiunea conținutului original.

0
adăugat

Nu sunt sigur despre toate detaliile (comprimare, codare, etc), dar de obicei utilizez doar WireShark pentru a analizați traficul în rețea (în timp ce încercați diverse metode), ceea ce vă permite să vedeți exact cum este trimis.

De exemplu, dacă este comprimat, blocul de date al pachetului nu ar trebui să poată fi citit ca text simplu ... totuși dacă este necomprimat, veți vedea doar vechiul text xml xml ... cum ați vedea cu trafic HTTP sau chiar FTP in anumite cazuri.

0
adăugat

Pentru a echivala ceea ce a spus Kevin, în serviciile web .net dacă aveți o matrice de octeți, este trimis în mod implicit ca șir de coduri base64. De asemenea, puteți specifica în prealabil codarea matricei de octeți.

Evident, odată ce ajunge la server (sau client), trebuie să decodezi manual șirul într-un tablou de octeți, deoarece acest lucru nu se face automat din păcate.

0
adăugat

Folosesc această metodă pentru unele servicii web interne ale companiei, și nu am observat nici o încetinire majoră (dar asta nu înseamnă că nu este acolo).

Probabil ați putea folosi oricare din numeroasele instrumente de analiză a traficului de rețea pentru a măsura dimensiunea datelor și pentru a face un apel de judecată bazat pe acest lucru.

0
adăugat

Principalul hit nu va fi din transferul fișierului codificat, va fi în procesarea pe care trebuie să o facă serverul pentru a codifica pre-transferul fișierului (cu excepția cazului în care fișierele nu se schimbă frecvent, iar codul versiunea poate fi stocată în cache).

0
adăugat