Η επιλογή διαμεσολαβητή του πλαισίου HTTP ανήκει στο περιτύλιγμα ροής HTTP της PHP. Μια ακατέργαστη σύνδεση TCP που δημιουργεί το stream_socket_client δεν γίνεται πελάτης διαμεσολαβητή HTTP επειδή απλώς υπάρχει αυτή η επιλογή σε ένα αντικείμενο πλαισίου.

Αν ο κώδικας συνδέεται απευθείας στη διεύθυνση προορισμού, ανοίγει αυτή τη διαδρομή TCP. Αν αντίθετα συνδέεται στη διεύθυνση του διαμεσολαβητή, τα επόμενα byte πρέπει ακόμη να υλοποιήσουν το πρωτόκολλο διαμεσολαβητή.

Για HTTP CONNECT αυτό σημαίνει έγκυρο κεντρικό υπολογιστή και θύρα προορισμού, τυχόν απαιτούμενη ταυτοποίηση διαμεσολαβητή, πλήρη ανάλυση της απόκρισης και αποδοχή πριν αρχίσει το πρωτόκολλο προορισμού. Μια μεμονωμένη κλήση fread που αναζητά φράση επιτυχίας δεν είναι πλήρης συνδετήρας. Το TCP μπορεί να χωρίσει μια απόκριση σε πολλές αναγνώσεις ή να επιστρέψει πρόσθετα byte που πρέπει να διατηρηθούν.

Για προορισμό HTTPS, το TLS πρέπει στη συνέχεια να ξεκινήσει μέσα από τη σήραγγα που έχει εδραιωθεί και να επαληθεύσει την ταυτότητα του προορισμού. Το όνομα κεντρικού υπολογιστή του διαμεσολαβητή δεν είναι η ταυτότητα πιστοποιητικού του ιστότοπου.

Χρησιμοποιήστε πελάτη ή συνδετήρα με τεκμηριωμένη υποστήριξη για το απαιτούμενο πρωτόκολλο διαμεσολαβητή όταν η εργασία είναι απλώς η λήψη ενός URL. Οι ρυθμίσεις HTTP και SOCKS της PHP cURL παρέχουν μία υποστηριζόμενη διαδρομή λήψης URL. Μια ακατέργαστη ροή είναι χρήσιμη όταν η εφαρμογή αναλαμβάνει αυτή την εργασία πρωτοκόλλου χαμηλότερου επιπέδου· δεν πρέπει να κληρονομεί σιωπηρά παραδοχές από ένα άσχετο παράδειγμα περιτυλίγματος HTTP.

Σχετικά άρθρα