🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: de.comm.software.webserver
4 messages
4 total messages Started by Stefan+Usenet@Fr Tue, 18 Jan 2022 17:29
Client has incomplete request - aber weshalb?
#6185
Author: Stefan+Usenet@Fr
Date: Tue, 18 Jan 2022 17:29
49 lines
1720 bytes
Ich schicke POST-Requests von unterschiedlichen (eigenen) Servern an
unterschiedliche (fremde) Server. Bei zwei Zielen kommt es seit
kurzem bei Übertragungsversuchen von einer der Quellen aus zu
Fehlern. Diese Quelle (Q2) hat einen deutlich höheren Versionsstand
(curl 7.74.0, openssl 1.1.1k) als die Quelle Q1 (mit curl 7.64.0 und
openssl 1.0.1t), bei der seit Jahr und Tag alles funktioniert.

Ich habe mir einen Testempfänger geschrieben, der mir die
übertragenen Header und Daten ausgibt - die sind bei Q1 und Q2
ident (Hostnamen, Passwort und IP-Adressen geaendert):

#v+
Host: reflektor.domain.example
Authorization: Basic dGVzdDpnZWhlaW0User-Agent: some string
Accept: */*
Referer: https://source.domain.example/
Content-Type: text/xml
Content-Length: 3692
Expect: 100-continue

[3692 Bytes Nutzdaten]
#v-

Q2 erhält als Antwort vom Zielserver einen Code 400 und die folgende
Information:

#v+
Client a.b.c.d:40672 has incomplete request: Estimated length was 3994 byte(s), received 3899 byte(s)
#v-

Zähle ich Header und Body zusammen komme ich auf eine Länge zwischen
den beiden genannten Zahlen... und kurioserweise klappt die
Übertragung, sobald ich bei Q2 den Content-Length Header weglasse
(wiewohl der genau den gleichen Wert enthält, wie bei Q1).

Hat irgendjemand eine Idee, was die Ursache des Problem sein könnte?
Ich kann auch (nahezu) beliebiges zur Informationsbeschaffung
ausprobieren, aber mir sind inzwischen die Ideen ausgegangen. Und
die Betreiber der Zielserver sind leider nur wenig hilfreich :(

Servus,
   Stefan

--
http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich
Offizieller Erstbesucher(TM) von mmeike

Stefan muß mehr als Spaß machen!
(Sloganizer)
Re: Client has incomplete request - aber weshalb?
#6186
Author: Dennis Preiser
Date: Sun, 23 Jan 2022 19:59
16 lines
621 bytes
Stefan Froehlich <Stefan+Usenet@froehlich.priv.at> wrote:
> Ich habe mir einen Testempfänger geschrieben, der mir die
> übertragenen Header und Daten ausgibt - die sind bei Q1 und Q2
> ident (Hostnamen, Passwort und IP-Adressen geaendert):
>
> #v+
> Host: reflektor.domain.example
> Authorization: Basic dGVzdDpnZWhlaW0> User-Agent: some string

Du schriebst zwar, dass Du nur Hostnamen, Passwort und IP-Adressen
geaendert hast, aber zur Sicherheit: steht da beidesmal "some string"?

Ich hatte schon Server, die nur mit einem "echt" aussehenden User-Agent
Header Daten geliefert haben. Ansonsten gab es 4xx.

Dennis
Re: Client has incomplete request - aber weshalb?
#6187
Author: Markus Schaaf
Date: Mon, 07 Feb 2022 14:25
9 lines
437 bytes
Am 18.01.22 um 18:29 schrieb Stefan Froehlich:

> Zähle ich Header und Body zusammen komme ich auf eine Länge zwischen
> den beiden genannten Zahlen...

Content-Length sollte schon stimmen. Die Bytes des Bodys (alles
nach der ersten Leerzeile) werden gezählt, wobei auf
CR/LF-Zeilenenden zu achten ist. Übrigens ist der Expect-Header
sehr ungewöhnlich und wird praktisch nur von curl gesendet. Evtl.
hat der Server da einen Bug.
Re: Client has incomplete request - aber weshalb?
#6188
Author: Stefan+Usenet@Fr
Date: Tue, 08 Feb 2022 09:25
33 lines
1417 bytes
On Mon, 07 Feb 2022 14:25:05 Markus Schaaf wrote:
> Am 18.01.22 um 18:29 schrieb Stefan Froehlich:
>> Zähle ich Header und Body zusammen komme ich auf eine Länge
>> zwischen den beiden genannten Zahlen...

> Content-Length sollte schon stimmen. Die Bytes des Bodys (alles
> nach der ersten Leerzeile) werden gezählt, wobei auf
> CR/LF-Zeilenenden zu achten ist. Übrigens ist der Expect-Header
> sehr ungewöhnlich und wird praktisch nur von curl gesendet. Evtl.
> hat der Server da einen Bug.

Mit oder ohne Expect hat keinen sichtbaren Unterschied gemacht.
Allerdings setzt curl den Content-Length Header (korrekt) selber,
und wenn ich es dabei belasse, klappen alle Übertragungen. Keine
Ahnung, was curl tut, wenn ich den gleichen Header mit dem gleichen
Wert auch selber setze - auf meinen eigenen Server umgeleitet sehen
die Requests exakt identisch aus, nur die zwei Fremdserver zeigen
sich irritiert.

Wie auch immer, das reicht mir im Grund genommen völlig aus. Ich
habe im Repository nachgesehen, Content-Length wird von mir seit
wenigstens 15 Jahren gesetzt (weiter reicht das Repository nicht);
möglicherweise war das damals noch nötig, jetzt ist es offenbar
nicht nur redundant, sondern kontraproduktiv.

Servus,
   Stefan

--
http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich
Offizieller Erstbesucher(TM) von mmeike

Frech bleibt frech: Stefan für alle Fälle!
(Sloganizer)
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads