Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 12455|Απάντηση: 1

Η κεφαλίδα αιτήματος HTTP Expect εξηγείται λεπτομερώς

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 2021-4-22 15:32:09 | | |
Εισαγωγή εγγράφου:Η σύνδεση με υπερσύνδεσμο είναι ορατή.

Όταν κάλεσα τη διεπαφή του άλλου μέρους μέσω curl, διαπιστώθηκε ότι το φαινόμενο του χρονικού ορίου ήταν πολύ σοβαρό, γι' αυτό ρώτησα το άτομο διεπαφής του άλλου μέρους και το άλλο μέρος είπε ότι ήταν απαραίτητο να προσθέσω:


Αφού το πρόσθεσα, διαπίστωσα ότι λειτούργησε πραγματικά καλά, οπότε ερεύνησα πώς να το χρησιμοποιήσω. Όταν χρησιμοποιείτε το curl για POST, όταν "τα δεδομένα POST είναι μεγαλύτερα από 1024 byte", το curl δεν θα ξεκινήσει απευθείας ένα αίτημα POST, αλλά θα χωριστεί σε 2 βήματα:

Expect: 100-continue

1. Στείλτε ένα αίτημα που περιέχει ένα Expect:100-continue, ζητώντας από τον διακομιστή να αποδεχτεί τα δεδομένα

2. Μετά τη λήψη της απάντησης 100 συνεχών που επιστρέφεται από τον διακομιστή, τα δεδομένα POSTs στον διακομιστή

Αλλά υπάρχουν πολλά προβλήματα με αυτό:

Δεν θα ανταποκριθούν σωστά όλοι οι διακομιστές στο 100-continue, π.χ. lighttpd, το οποίο θα επιστρέψει 417 Expectation Failed.

προκαλώντας καθυστέρηση,Όταν ο υπολογιστής-πελάτης στείλει το πρώτο Expect:100-continue, πρέπει να περιμένει να απαντήσει ο διακομιστής πριν στείλει το σώμα της αίτησης

Εάν είστε βέβαιοι ότι ο διακομιστής του άλλου μέρους δεν θα απορρίψει αιτήματα POST άνω των 1024 byte, μπορείτε να αποφύγετε τη χρήση αυτής της μεθόδου και να αποφύγετε τις δύο παρενέργειες που αναφέρονται παραπάνω και η λύση είναι αυτή που αναφέρεται στην αρχή του άρθρου.

Περίπου 100 συνεχίζουν

Σκοπός αυτού είναι:

Επιτρέπει στον πελάτη να κρίνει εάν ο διακομιστής είναι πρόθυμος να λάβει τα δεδομένα αιτήματος πριν τα στείλει και εάν ο διακομιστής είναι πρόθυμος να τα λάβει, ο πελάτης θα στείλει πραγματικά τα δεδομένα.

Συμπεριφορά πελάτη:

Ένας υπολογιστής-πελάτης που στέλνει 100 συνέχεια δεν θα πρέπει να περιμένει για πάντα μια απάντηση από το διακομιστή και μετά από μια περίοδο χρονικού ορίου, ο υπολογιστής-πελάτης θα πρέπει να στείλει απευθείας την οντότητα.

Συμπεριφορά από την πλευρά του διακομιστή:

Εάν ο διακομιστής λάβει ένα αίτημα 100 συνέχειας, θα απαντήσει με 100 συνέχεια ή θα στείλει έναν κωδικό σφάλματος. Ο διακομιστής δεν μπορεί ποτέ να στείλει 100 συνέχεια σε έναν υπολογιστή-πελάτη που δεν στέλνει 100 συνέχεια. Αλλά ορισμένοι διακομιστές το κάνουν. Εσφαλμένη αποστολή απόκρισης 100-συνέχειας από τις υπηρεσίες IIS 5

Εάν ο διακομιστής λάβει το σώμα του πελάτη πριν στείλει την απάντηση 100 συνέχειας, σημαίνει ότι ο πελάτης έχει αποφασίσει να ξεκινήσει την αποστολή δεδομένων, επομένως ο διακομιστής δεν μπορεί πλέον να στείλει 100 συνέχεια στον πελάτη.
Ο κωδικός ρύθμισης .NET Expect Off Expect έχει ως εξής:

Το RestSharp έχει ρυθμιστεί ως εξής:







Προηγούμενος:Η διαφορά μεταξύ utf8 και utf8mb4 στη MySQL
Επόμενος:Το SignalR προσθέτει υποστήριξη μεταξύ τομέων για απομακρυσμένη πρόσβαση
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 2025-4-6 21:52:04 |
Μέθοδος κλεισίματος HttpClient


ή

Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com