Hardcore! 30 illustre des questions d'entrevue communes HTTP

Auteur | Kobayashi codage

Source | Kobayashi codage

Au cours du processus d'entrevue, HTTP est une question de probabilité est encore relativement élevé.

Kobayashi Je collectionnais cinq catégories entrevue HTTP questions fréquemment posées, alors que les cinq catégories de problèmes avec le développement HTTP et l'évolution de l'association est relativement importante, pour vous aider à une étude plus approfondie par Q + profonde forme graphique et la manière la compréhension du protocole HTTP.

  • Concepts de base HTTP

  • Publierez

  • fonctionnalités HTTP

  • HTTPS et HTTP

  • HTTP / 1.1, HTTP / 2, HTTP / 3 Evolution

  • contour

    Concepts de base HTTP

    HTTP est quoi? décrire

    HTTP est le protocole de transfert hypertexte, il est Protocole de HyperText Transfer.

    Vous pouvez expliquer en détail « Protocole de Hypertext Transfer »?

    nom HTTP « protocole de transfert hypertexte », qui peut être divisé en trois parties:

    • Hypertext

    • transmission

    • accord

    trois pièces

    1. « Accord »

    Dans la vie, on peut le voir partout « Accord », par exemple:

    • Contresigner un « accord tripartite » après l'obtention du diplôme;

    • Contresigner un « contrat de location » lorsque vous cherchez un appartement;

    accord tripartite et le contrat de location

    La vie de l'accord, en substance, l'ordinateur est le même accord, les caractéristiques de l'accord:

    • mot « association », ce qui signifie qu'il doit y être représenté Plus de deux participants . Par exemple un accord tripartite où les participants sont trois: vous, les entreprises, les écoles, trois accords de location où les participants ont deux: vous et le propriétaire.

    • « Instrument », au nom de la moyenne est un participant conventions de conduite et de normes . Par exemple, l'accord tripartite dans le délai prescrit de probation, violation des paiements contractuels et ainsi de suite, le contrat de location dans les dispositions de la période de location, le montant du loyer mensuel, comment faire face à une rupture de contrat et ainsi de suite.

    Pour le protocole HTTP, afin que nous puissions comprendre.

    HTTP est utilisé dans un monde informatique où l'accord. On peut noter que un cahier des charges langage informatique mis en place des échanges (plus de deux participants) de communication entre un ordinateur et le contrôle associé et gestion des erreurs diverses (et stipulé spécification de comportement).

    2. « Transfert »

    Le soi-disant « transfert », bien compris, est de mettre un tas de choses à aller du point A au point B ou point A du point B à se déplacer.

    Ne sous-estimez pas cette action simple, qui comprend au moins deux informations importantes.

    protocole HTTP est un accord dans les deux sens .

    Lorsque nous surfer sur le Web, le navigateur demande la partie A, le site Baidu est un B. répondeur Les deux parties ont convenu de communiquer avec le protocole HTTP, de sorte que le navigateur pour les données envoyées sur le site, puis le retour du site des données au navigateur, la finale rendue par l'écran du navigateur, vous pouvez voir des photos, des vidéos.

    Demande - réponse

    Bien que les données sont transmises entre A et B, mais permet le transport du milieu ou d'un relais.

    Tout comme la première ligne des étudiants veulent porter remis une note à la dernière ligne des étudiants, le processus de transfert devra passer par un bon nombre d'étudiants (middleman), cette transmission est passée de « A <  --- >  B "devient" A < - >  N < - >  M < - >  B. "

    Dans HTTP, le besoin d'intermédiaires pour se conformer au protocole HTTP, il ne perturbe pas le transfert de données de base, vous pouvez ajouter des choses supplémentaires.

    Pour la transmission, nous pouvons mieux comprendre HTTP.

    HTTP est un ordinateur dédié au monde La transmission des données entre deux points Conventions et normes.

    3. « hypertexte »

    transmission de contenu HTTP est « hypertexte ».

    Nous avons d'abord comprendre « texte », les premiers jours de l'Internet est tout simplement un texte de caractère, mais maintenant « texte ». Signification déjà étendu à des images, des vidéos, des archives, etc., dans les yeux de ces HTTP sont comptés comme « texte ».

    Venez comprendre le « hypertexte », ce qui est d'aller au-delà du texte brut du texte, il est du texte, des images, vidéo et autre mélange des plus importants hyperliens, saut hypertexte d'un à l'autre hypertexte.

    HTML est le plus hypertexte commun, et il est lui-même seulement des fichiers texte, mais l'intérieur avec beaucoup de balise définit une des images de liens, des vidéos, et page par le navigateur d'interprétation, nous a présenté un texte, il y a des photos de la .

    OK, après une explication détaillée de HTTP dans ces trois termes, il peut être donné que le « Protocole Hypertext Transfer » sept mots de réponses plus précises au contenu plus technique:

    HTTP est celle entre « deux points », « conventions et normes » « hypertexte » données « transmission » du texte, des images, audio, vidéo, etc. est spécialisée dans le monde informatique.

    Ce « HTTP est utilisé pour le transfert hypertexte à partir du serveur Internet au protocole HTTP local du navigateur », cette déclaration correcte?

    Cette déclaration n'est pas correct. Comme il est également un « serveur <  - > Serveur « si descriptif entre les deux points serait plus précis.

    codes d'état HTTP communs, quoi?

    Cinq catégories code d'état HTTP

    1xx

    Code 1xx appartient à la classe de message d'état, un protocole de traitement dans l'état intermédiaire, utilise en fait moins.

    2xx

    2xx codes d'état de classe indiquent que le serveur a traité avec succès la demande du client, l'État est notre plus disposés à voir.

    « 200 OK » est le plus code d'état avec succès commun indiquant que tout est normal. Si une demande non-HEAD, le serveur renvoie l'en-tête de réponse auront une donnée du corps.

    « 204 Pas de contenu » est un code d'état de réussite commun 200 OK avec essentiellement le même, mais le corps ne répond pas aux premières données.

    « 206 Contenu partiel » est appliqué à HTTP Chunked off ou reprendre les téléchargements, les données représentent pas toutes les ressources de la réponse corps en arrière, mais une partie de celui-ci, mais aussi les processus serveur un état avec succès.

    3xx

    3xx code d'état de classe indique que le client envoie les modifications des ressources demandées, le client doit utiliser le nouvel accès à la demande resend URL aux ressources, qui est redirigé.

    « 301 Moved permanente » est une redirection permanente, ce qui indique que la ressource demandée n'existe pas, la nécessité d'utiliser la nouvelle URL pour visiter à nouveau.

    « 302 Moved en permanence » est une redirection temporaire, ce qui indique que la ressource est toujours là, mais avec un besoin temporaire d'accès à une autre URL.

    301 et 302 utilisera le champ Emplacement dans la réponse à l'avance, ce qui indique le suivi de sauter l'URL, le navigateur redirige automatiquement une nouvelle URL.

    « 304 Not Modified » n'a pas le sens saut, exprimé des ressources non modifiés, rediriger les fichiers de cache existants, également connu sous le nom de redirection cache pour le contrôle du cache.

    4xx

    classe 4xx de code d'état indique que le message envoyé par le client est incorrecte, le serveur ne peut pas gérer, ce qui est la signification des codes d'erreur.

    « 400 Bad Request » montre que le client de message demande une erreur, mais juste une erreur générale.

    « 403 Forbidden » indique que les ressources du serveur interdit d'accès, la demande du client est pas une erreur.

    « 404 Not Found » indique que la ressource demandée n'existe pas ou est introuvable sur le serveur, il n'est pas fourni au client.

    5xx

    5xx code d'état de classe indique que le message de demande du client est correct, mais une erreur est survenue lorsque les processus internes du serveur, le code d'erreur appartenant au serveur.

    "500 Internal Server Error" avec le type 400, est un code d'erreur générique général, le serveur qui a mal tourné, nous ne savons pas.

    « 501 Non implémenté » signifie que le client ne prend pas en charge la fonction demandée, semblable à l ' « ouverture bientôt, restez donc à l'écoute » signifie.

    « 502 Bad Gateway » code d'erreur est généralement renvoyé par le serveur comme une passerelle ou un proxy, ce qui indique que le serveur lui-même fonctionne correctement, erreur d'accès du serveur back-end a eu lieu.

    « 503 Service non disponible » indique que le serveur est actuellement occupé, temporairement incapable de répondre au serveur, similaire au « service de réseau est occupé, s'il vous plaît réessayer plus tard » signifie.

    http Quels sont le champ commun?

    hôte

    Lorsque le client envoie une requête pour le nom de domaine du serveur.

    Hôte: www.A.com

    Avec le champ Hôte, vous pouvez demander à envoyer à différents sites sur le serveur, « la même chose. »

    champ Content-Length

    Lorsque le serveur renvoie les données, il y aura champ Content-Length indique la longueur des données de cette réponse.

    Content-Length: 1000

    Comme ci-dessus, il est de dire au navigateur, cette réponse serveur longueur des données est de 1000 octets, l'octet suivant appartient à la réponse suivante.

    champ de connexion

    champ Connexion est le plus souvent utilisé pour le client demande au serveur en utilisant la demande persistante de connexion TCP à l'autre multiplexe.

    La connexion par défaut HTTP / 1.1 version est une connexion persistante, mais pour la compatibilité avec les anciennes versions de HTTP, vous devez spécifier la valeur du champ d'en-tête de connexion Keep-Alive.

    Connexion: keep-alive

    Un multiplexage de connexion TCP peut être établie jusqu'à ce que le client ou le serveur ferme la connexion. Cependant, ce n'est pas un champ standard.

    champ Content-Type

    Lorsque le champ Content-Type est utilisé pour le serveur pour répondre, dire au client que c'est ce que le format de données.

    Content-Type: text / html; charset = utf-8

    Ce qui précède montre que le type de transmission est la page et le code est UTF-8.

    Quand un client demande, vous pouvez utiliser Accepter déclaration de champ quels formats de données qu'ils peuvent accepter.

    Accepter: * / *

    Le code ci-dessus, le client peut accepter des données se sont déclarés dans tout format.

    Content-Encoding champ

    champ Content-Encoding spécifie la méthode de compression de données. Indiquant que le serveur renvoie les données en utilisant le format de compression

    Content-Encoding: gzip

    Les moyens ci-dessus que le serveur renvoie les données en utilisant le mode de compression gzip, le client doit informer la décompression de cette manière.

    Lorsque la demande du client, avec le champ Accept-Encoding spécifie la méthode de compression qui peut accepter son propre.

    Accept-Encoding: gzip, dégonfler

    GET et POST

    Parlez de la différence entre GET et POST?

    Signification méthode Get est à demander l'accès aux ressources du serveur, cette ressource peut être texte statique, des pages, des images et des vidéos.

    Par exemple, vous ouvrez mon article, le navigateur envoie une requête GET au serveur, tous les serveurs de texte et des ressources renvoie à l'article.

    demande GET

    La méthode POST est l'opération inverse, de soumettre des données qui spécifie l'URI de la ressource, les données sont placées dans le corps du message.

    Par exemple, vous êtes au fond de mon article, après avoir tapé le message Cliquez sur « Soumettre » (ce qui suggère que vous laissez un message), le navigateur effectuera une requête POST texte de votre message dans le corps du message, puis épissés bonne demande POST tête, envoyé au serveur via le protocole TCP.

    requête POST

    Méthodes POST et GET sont sûrs et idempotents il?

    Pour illustrer le concept de sécurité et idempotent:

    • Dans le protocole HTTP, le soi-disant « sécurité », la méthode ne demande pas des ressources sur le serveur « sabotage ».

    • Les soi-disant « idempotent », ce qui signifie la même opération est effectuée plusieurs fois, le résultat est « le même » dans.

    alors évidemment méthode GET est sûr et idempotent Parce qu'il est « en lecture seule » opération, peu importe combien de fois l'opération, les données sur le serveur est sûr, et chaque fois que le résultat est le même.

    POST parce qu'il est opération « nouvelle ou la présentation des données » modifiera les ressources sur le serveur, il est dangereux, et soumettre des données à plusieurs reprises pour créer des ressources multiples, non idempotent .

    fonctionnalités HTTP

    Connaissez-vous les avantages de HTTP (1.1) de quoi, comment réfléchi?

    HTTP est le plus saillant avantage « simple, flexible et facile à développer, et un large éventail d'applications multi-plateformes. »

    1. simple

    HTTP format de message de base est le corps d'en-tête +, les informations d'en-tête est la valeur clé sous la forme d'un texte simple, facile à comprendre, ce qui réduit le seuil de l'apprentissage et de l'utilisation.

    2. Flexible et facile à développer

    Chaque composant nécessite le protocole HTTP dans tous les types de méthode de requête, URI / URL, codes d'état, et d'autres champs d'en-tête ne sont pas fixés morts, il permet aux développeurs de personnaliser et de se développer.

    Puisque HTTP fonctionne alors que la couche d'application (septième couche OSI), il peut être librement modifié sous-couche.

    HTTPS est entre HTTP et la couche TCP ajoute SSL / TLS couche de transport sécurisé, HTTP / 3 TCPP même couche dans un QUIC UDP.

    3. applications large et multi-plateforme

    développement Internet à ce jour, HTTP très large gamme d'applications, à partir du navigateur de bureau à une variété de l'APP au téléphone, de regarder les nouvelles, le coller à la boutique, banque, poulet, les applications HTTP Assommé la floraison, en même temps a un naturel avantages multi-plateforme.

    Que ses inconvénients?

    protocole HTTP, il y a des avantages et des inconvénients d'une de l'épée à double tranchant, sont « sans état, transmis en clair », ainsi que Un inconvénient majeur « dangereux ".

    1. Stateless épée à double tranchant

    Les avantages des apatrides parce que le serveur HTTP ne dit pas de se rappeler, les ressources de l'Etat, donc pas d'autres à enregistrer des informations, ce qui peut réduire la charge sur le serveur, peut mettre plus processeur et la mémoire pour fournir des services.

    Stateless mal, car il n'y a pas de capacité de mémoire du serveur, il sera très difficile quand il y a une corrélation complète de l'opération.

    Tels que l'exploitation forestière - > Ajouter panier - > commandes - > règlement - > Le paiement, cette série d'opérations doit connaître l'identité d'un utilisateur du travail. Mais le serveur ne sait pas que ces demandes sont liées, chaque fois demandé à nouveau des informations identifiables.

    Alors que chaque opération une fois, doit vérifier les informations, mais aussi une expérience de magasinage agréable? Ne demandez pas, demandez à l'acide est cool!

    Pour le problème sans état, il existe plusieurs solutions système dans lequel une manière relativement simple des techniques de Cookie.

    Cookie pour contrôler les informations d'état du client en écrivant demande Cookie et des paquets de réponse.

    Équivalent, pour la première fois après la demande du client, le serveur sera publié une information à la clientèle avec « petits autocollants » lorsque les demandes clients au serveur, prennent « petits autocollants », le serveur sera en mesure de reconnaître, et

    technologie Cookie

    2. épée à double tranchant texte clair

    Effacer signifie l'information pendant la transmission, et est facile à lire, peut être consulté directement par la console oeil nu F12 ou navigateur Wireshark capture de paquets, avec une grande commodité pour notre débogage.

    Mais il en est ainsi, toutes les informations contenues dans le protocole HTTP sont exposés en plein jour, des informations équivalentes strie. Dans le long processus de transmission, des informations de contenu sont pas la vie privée, peut facilement être volé, s'il y a votre mot de passe de compte que vous ne l'avez pas le numéro.

    3. Unsafe

    HTTP inconvénient plus grave est dangereux:

    • Communication en utilisant du texte clair (non crypté), le contenu peut être exploité. Par exemple, les informations de compte est facile à fuir, ce numéro que vous ne l'avez pas.

    • Ne vérifie pas l'identité des parties en communication, il est susceptible de déguisement de rencontre. Par exemple, l'accès à de faux Taobao, beaucoup de combat, l'argent que vous ne l'avez pas.

    • Impossible de prouver l'intégrité du message, donc il peut y avoir été falsifiée. Par exemple, le courrier indésirable implant sur la page, la pollution visuelle, pas l'il.

    Les questions de sécurité HTTP, HTTPS peuvent être résolus de manière, à savoir par l'introduction d'une couche SSL / TLS, de sorte que dans la sécurité extrême.

    Alors, comment sous HTTP / 1.1 performance que vous dites?

    protocole HTTP est basé sur TCP / IP et utilisez la « demande - réponse » mode de communication, de sorte que la performance clé dans ces deux années.

    1. Connexion longue

    Au début HTTP / 1.0 est un gros problème sur la performance, qui est, chaque initié une demande d'avoir une nouvelle connexion TCP (poignée de main à trois voies), mais est une demande de série, a fait un établissement de connexion TCP sans peur et la déconnexion, l'augmentation les frais généraux de communication.

    Afin de résoudre les connexions TCP problème ci-dessus, HTTP / 1.1 a présenté une connexion de communication à long chemin, également connu sous le nom des connexions persistantes. L'avantage de cette approche est de réduire la duplication établir une connexion TCP et la déconnexion causée par les frais généraux, réduit la charge sur le côté serveur.

    Il dispose d'une connexion persistante, tant qu'il n'y a pas clairement indiqué soit fin déconnecté, laissez l'état de la connexion TCP.

    Courte connexion longue liaison

    2. La transmission du réseau de canalisation

    HTTP / 1.1 est reliée au moyen d'un long chemin, ce qui rend le tube de transmission de réseau (Pipeline) devient possible.

    Dans la même connexion TCP auquel le client peut lancer plusieurs demandes, tant que la première demande est envoyée, sans attendre qu'il revienne, vous pouvez envoyer la deuxième demande, peut réduire le temps de réponse global.

    Par exemple, le client a besoin de deux demandes de ressources. La pratique antérieure, dans laquelle une connexion TCP avec la première demande de A à envoyer, puis attendez que le serveur de répondre, puis a reçu une demande émise B. mécanisme de pipeline est également émis pour permettre que le navigateur demande demande A et B.

    Transmission réseau de gazoducs

    Toutefois, le serveur est en ordre, la première à répondre aux demandes A, B, après l'achèvement de la réponse à la demande. Si la réponse est particulièrement lent devant, derrière, il y aura beaucoup de demandes en attente dans la ligne. Ceci est appelé « colmatage de la tête de l'équipe. »

    3. La tête de blocage de ligne

    modèle - « Demande de réponse » exacerbe les problèmes de performance pour HTTP.

    Parce que quand pour une raison quelconque la séquence de requête transmise dans l'ordre d'une demande est bloquée, toutes les demandes ultérieures mises en attente ensemble également bloqué, et conduira le client n'a pas demandé de données, qui est la « tête de blocage de la ligne. » Comme un embouteillage sur le chemin du travail.

    Chef de blocage de la ligne

    La performance globale HTTP / 1.1 dans une HTTP générale ultérieure, / 2 et HTTP / 3 est la performance d'optimisation du protocole HTTP.

    HTTP et HTTPS

    HTTP et HTTPS Quelles sont les différences?

  • HTTP est le protocole Hypertext Transfer, les informations sont transmises en clair, il y a un risque de problèmes de sécurité. HTTPS est une solution défaut dangereuse HTTP dans la couche réseau entre TCP et HTTP ajouté protocole de sécurité SSL / TLS, ces messages peuvent être transmission cryptée.

  • Configuration de la connexion HTTP est relativement simple, TCP poignée de main à trois voies peut être effectuée après la transmission HTTP paquet. Le protocole HTTPS après la poignée de main à trois voies TCP, la nécessité d'une poignée de main sur SSL / TLS, avant d'entrer dans la transmission du message chiffré.

  • numéro de port HTTP 80, le numéro de port HTTPS est 443.

  • Le protocole HTTPS requiert la (autorité de certification) CA demander un certificat numérique pour assurer peut faire confiance à l'identité du serveur.

  • HTTPS qui problèmes de HTTP?

    Étant donné que HTTP est transmis en clair, il y a trois risques de sécurité:

    • risque Eavesdropping, comme le lien de communication peut être communiquée est accessible, numéro d'utilisateur facile n'a pas.

    • Le risque de falsification, comme forcé dans le spam, la pollution visuelle, aveugle facile des yeux de l'utilisateur.

    • les risques se faisant passer, comme posant que la station Taobao, l'utilisateur n'a pas l'argent facile.

    Entre HTTP et HTTPS couche TCP a été ajouté le protocole SSL / TLS.

    HTTP et HTTPS

    Vous pouvez résoudre les risques ci-dessus:

    • Le chiffrement des informations : Informations Interactive ne peut être volé, mais votre numéro parce que «s'oublier » et ne tenait pas compte.

    • mécanisme de vérification : Ne peut pas altérer le contenu de la communication, une tentative de sabotage ne peut pas être affiché correctement, mais Baidu « PPC » peut toujours rechercher le spam.

    • certificat d'identité : Prouver Taobao Taobao est vrai, mais toujours votre argent parce que « couper la main » et n'a pas.

    Visible, tant que leur pas « mal », le protocole SSL / TLS est d'assurer que la communication est sécurisée.

    HTTPS est comment résoudre le risque trois ci-dessus?

    • manière de chiffrement hybride pour obtenir la confidentialité des informations Pour faire face au risque de l'écoute clandestine.

    • Façon d'atteindre l'intégrité algorithme digest Il peut générer une « empreinte digitale » unique pour les données, la vérification de l'intégrité des données pour les empreintes digitales, porte sur le risque d'altération.

    • La clé publique du serveur pour mettre le certificat numérique Pour parer au risque de poser.

    1. Le chiffrement hybride

    En mélangeant des moyens cryptés pour assurer la confidentialité des informations, pour faire face au risque de l'écoute clandestine.

    Le chiffrement hybride

    HTTPS utilise un cryptage symétrique en mode « cryptage hybride » et la combinaison de chiffrement asymétrique:

    • L'utilisation du cryptage asymétrique avant d'établir l'échange de communication de « clé de session secrète, » le suivi n'utilise plus le cryptage asymétrique.

    • Utilisez toutes les « clés de session » processus de communication de chiffrement symétrique moyen de chiffrer les données de texte en clair.

    L'utilisation de l'approche « cryptage hybride » de raisons:

    • utilise le cryptage Symmetric une seule clé, vitesse rapide, la clé doit être gardée secrète, ne peut pas être l'échange de clé sécurisée.

    • Le chiffrement asymétrique utilise deux clés: une clé publique et une clé privée, clé publique et une clé privée peut distribuer un secret pour résoudre le problème de l'échange de clés, mais plus lentement.

    2. algorithme Digest

    algorithme Digest utilisé pour mettre en uvre l'intégrité, capable de générer une « empreinte » unique pour les données utilisées pour vérifier l'intégrité des données pour faire face au risque de falsification.

    Vérifier l'intégrité du

    Le client avant d'envoyer le texte brut sera calculé explicitement par l'algorithme digest « empreinte digitale » lors de l'envoi à « empreinte digitale + texte brut » après ensemble dans cryptogramme, envoyé au serveur, le serveur déchiffre calculé envoyé par le même algorithme digest expressément, en comparant le client pour effectuer les « empreintes » et l ' « empreinte » calculée de courant de comparaison, si la même « empreinte », ce qui indique que les données sont complètes.

    3. Certificats numériques

    Xianxiang demander au serveur de client clé publique puis cryptée avec le serveur d'information reçoit le cryptogramme avec sa clé privée pour déchiffrer.

    Qu'il ya un problème, comment faire en sorte que la clé publique ne soit pas trafiqué et de confiance?

    Alors là, vous avez besoin d'utiliser l'autorité tiers CA (autorité de certification), la clé publique du serveur dans le certificat numérique (émis par une autorité de certification), tant que le certificat est authentique, la clé publique est crédible.

    Les certificats numériques de workflow

    A titre de certificats numériques pour garantir l'identité de la clé publique du serveur, ce qui pose un risque pour la résoudre.

    HTTPS est de savoir comment établir une connexion? Au cours de l'interaction de quoi?

    processus de base protocole SSL / TLS:

    • Les clients demandent et vérifier la clé publique au serveur du serveur.

    • Les deux parties ont négocié la production de « clé de session secrète. »

    • Les deux côtés à l'aide des « clés de session » pour les communications cryptées.

    Les deux premières étapes est le processus d'établissement de SSL / TLS, qui est la phase d'établissement de liaison.

    « La poignée de main » de SSL / TLS impliquant quatre communications, vu ci-dessous:

    HTTPS établissement de la connexion

    protocole SSL / TLS établi des processus détaillés:

    1. ClientHello

    Tout d'abord, pour initier la demande de communication cryptée au serveur par le client, ce qui est la demande ClientHello.

    Dans cette étape, le client envoie les informations suivantes au serveur principal:

    (1) supporté par le client SSL / TLS version de protocole, telles que la version 1.2 de TLS.

    (2) la production de nombre aléatoire client (Client aléatoire), utilisé plus tard pour produire "clés de session."

    (3) suites de chiffrement prises en charge par la liste des clients, tels que l'algorithme de cryptage RSA.

    2. SeverHello

    Après que le serveur reçoit la requête du client, la réponse envoyée au client, à savoir SeverHello. La réponse du serveur de contenu a le contenu suivant:

    (1) confirmer la version du protocole SSL / TLS, si le navigateur ne supporte pas, puis fermez la communication cryptée.

    (2) produire un serveur de nombres aléatoires (Random Server), puis utilisé pour produire "clés de session."

    (3) pour confirmer la liste des suites de chiffrement, tels que l'algorithme de cryptage RSA.

    certificat numérique de serveur (4).

    3. La réponse du client

    Après que le client reçoit la réponse du serveur, d'abord par un navigateur ou d'un système à clé publique CA d'exploitation, confirmer l'authenticité du certificat numérique du serveur.

    Si le certificat est pas un problème, la clé publique du serveur client extrait du certificat numérique, puis l'utiliser pour chiffrer un message, envoyer les informations suivantes au serveur:

    (1) un nombre aléatoire (clé pré-maître). Le nombre aléatoire est la cryptographie à clé publique de serveur.

    (2) algorithme de chiffrement communication pour le changement comme avis que les informations suivantes seront cryptées avec la communication « clés de session. »

    (3) la fin de la prise de contact de client de notification, la phase d'établissement de liaison représente le client a pris fin. Celui-ci est arrivé alors que les données de tout le contenu du résumé avant d'être utilisé pour la validation côté serveur.

    Le premier nombre aléatoire est supérieur à la totalité de la phase de prise de contact du troisième nombre aléatoire, de sorte que le serveur et le client en même temps, il y a trois nombres aléatoires, puis ils ont négocié avec l'algorithme de chiffrement, le coût de chaque étudiant pour la communication secondaire « clés de session » .

    4. réponse finale du serveur

    Une fois le serveur reçoit un client du troisième nombre aléatoire (clé pré-maître), par l'algorithme de chiffrement négocié pour calculer cette communication « clés de session. » Ensuite, les dernières informations sur l'événement au client:

    (1) algorithme de chiffrement communication pour le changement comme avis que les informations suivantes seront cryptées avec la communication « clés de session. »

    (2) un avis d'établissement de liaison du serveur d'extrémité que la phase d'établissement de liaison du serveur est terminée. Celui-ci est arrivé alors que les données de tout le contenu du résumé avant d'être utilisé pour la validation côté client.

    À ce stade, toute la scène de prise de contact SSL / TLS partout. Ensuite, le client et le serveur dans la communication cryptée, il est tout à fait normal d'utiliser le protocole HTTP, mais avec « clés de session » pour chiffrer le contenu.

    HTTP / 1.1, HTTP / 2, HTTP / 3 Evolution

    Discuter HTTP / 1.1 améliore les performances par rapport à ce que HTTP / 1.0?

    HTTP / 1.1 par rapport à l'amélioration des propriétés HTTP / 1.0:

    • L'utilisation à long connexions TCP améliore les frais généraux de performance HTTP / 1.0 en raison de connexions courtes.

    • tuyaux de support transport réseau (Pipeline), tant que la première demande est envoyée, sans attendre qu'il revienne, peut envoyer la deuxième demande, il peut réduire le temps de réponse global.

    Cependant, HTTP / 1.1 il y a des goulots d'étranglement:

    • en-tête de demande / réponse (En-tête) est envoyé non compressé, plus retardé plus les informations d'en-tête. Seule une partie du corps de compression;

    • Envoyer en-tête long. Chaque autre plus chaque fois que vous envoyez le même en-tête causés par les déchets;

    • Server est une réponse à la demande de l'ordre, si le serveur est lent à répondre, conduira le client n'a pas demandé de données, qui est la tête de blocage de la ligne;

    • Il n'a pas demandé le contrôle de priorité;

    • Les demandes que de client démarre, le serveur ne peut répondre passivement.

    Que les goulots d'étranglement de performance ci-dessus de HTTP / 1.1, HTTP / 2 ce qui a été fait pour optimiser?

    HTTP / 2 protocole est basé sur le protocole HTTPS, la sécurité du HTTP / 2 est également garantie.

    Ce HTTP / 2 par rapport à l'amélioration des HTTP / 1.1 Propriétés:

    1. compression d'en-tête

    HTTP / 2 sera en-tête compressé (en-tête) si vous faites plusieurs demandes en même temps, leurs têtes sont les mêmes, ou similaire, l'accord vous aidera à éliminer les points en double.

    Ceci est appelé algorithme de HPACK: le client et le serveur en même temps le maintien d'un en-tête de la table, tous les champs seront stockés dans ce tableau, pour générer un numéro d'index, après ne pas envoyer le même champ, et envoyer seul l'index, améliorant ainsi la vitesse a.

    2. Format binaire

    HTTP / 2 est plus que HTTP / 1.1 sous la forme de messages texte brut, mais l'utilisation complète du format binaire.

    l'information d'en-tête et les données sont binaires corps, et est appelée une trame (frame): informations d'en-tête de trame et une trame de données.

    différence Packets

    Bien que ces personnes hostiles ordinateurs, mais très sympa, parce que les ordinateurs ne comprennent le binaire, puis après avoir reçu les paquets, ce qui élimine la nécessité de transformer le message en binaire clair, mais l'analyse syntaxique directement un message binaire, ce qui augmente la transmission de données efficacité.

    3. flux de données

    Paquet HTTP / 2 ne sont pas transmis en séquence, qui est relié à un des paquets consécutifs, il peut appartenir à des réponses différentes. Par conséquent, il est nécessaire de marquer les paquets, il a souligné qu'il appartient de répondre.

    Tous les paquets de chaque demande ou réponse, désignés en tant que flux de données (flux).

    Chaque flux de données est marqué d'un numéro unique, qui fournit le flux de données envoyé par le numéro de client est un nombre impair, les flux de données envoyées par le serveur est un nombre pair

    Le client peut également spécifier la priorité du flux de données. Une demande de haute priorité, le serveur répond à la première demande.

    HTT / 1 ~ HTTP / 2

    4. Multiplexeur

    HTTP / 2 est requêtes ou des réponses simultanées multiples dans une connexion, plutôt que dans l'ordre de un pour un.

    Retirez la demande série HTTP / 1.1, pas d'attente en ligne, il ne se reproduira pas, « tête de ligne » blocage des problèmes, réduire la latence, ce qui améliore considérablement l'utilisation de la connexion.

    Par exemple, dans une connexion TCP, le serveur reçoit la demande de deux clients A et B, si un processus de découverte prend du temps, ils répondent à la demande a été traitée et la section A, B puis répondre à la demande, après l'achèvement de puis répondre aux demandes d'un repos.

    multiplexeur

    5. push serveur

    HTTP / 2 est encore un certain degré d'amélioration sur la traditionnelle « demande - réponse » mode de fonctionnement, le service n'est plus une réponse passive, il peut aussi prendre l'initiative d'envoyer un message au client.

    Par exemple, lorsqu'un navigateur demande juste HTML, il peut être utilisé pour faire avancer les ressources statiques JS, les fichiers CSS, et ainsi prendre l'initiative au client, la latence réduire, ce qui est la poussée du serveur (Server Push, également connu sous le cache push).

    HTTP / 2 Quels défauts? HTTP / 3 Optimized pour faire quoi?

    HTTP / 2 problème principal est que: une pluralité de requêtes HTTP un multiplexage de connexion TCP, le protocole de couche inférieure est TCP ne sait pas combien de requêtes HTTP.

    Donc, une fois une perte de paquets, il déclenche le mécanisme de retransmission de TCP, toutes les requêtes HTTP de sorte qu'une connexion TCP doit attendre les paquets perdus sont retransmis en arrière.

    • HTTP / 1.1 dans le conduit (Pipeline) s'il y a une demande de transmission est bloquée, la file d'attente de demande est également bloqué tous les êtres vivants

    • HTTP / 2 demandes multiples multiplexés une connexion TCP, une fois de perte de paquets, il bloque toutes les requêtes HTTP durée.

    Tel est le problème de la TCP couche de transport, de sorte que HTTP / 3 Ba HTTP sous-jacente protocole TCP dans un UDP!

    HTTP / 1 ~ HTTP / 3

    UDP se produit indépendamment de l'ordre, quelle que soit la perte de paquets, donc pas la tête de la ligne de blocage HTTP / 1.1 et une perte de toute la question de la retransmission HTTP / 2.

    Nous savons tous que UDP n'est pas une transmission fiable, mais le protocole UDP QUIC peut atteindre une fiabilité de transmission similaire de TCP.

    • QUIC peut avoir leur propre ensemble de mécanismes pour assurer la fiabilité de la transmission. Lorsqu'une perte de débit se produit, il n'obstrue le flux, d'autres cours d'eau ne seront pas affectés.

    • TL3 escaladé dans la dernière version 1.3, l'algorithme de compression d'en-tête également dégénéré en QPACK.

    • HTTPS pour établir une connexion, il faut six à interagir, d'abord établir une poignée de main à trois voies, puis les trois voies TLS / 1.3 poignée de main. QUIC interagissent directement avec les six fois combinés dans le passé TCP et TLS / 1.3 est devenu trois fois, ce qui réduit le nombre d'interactions.

    TCP HTTPS (TLS / 1.3) et QUIC HTTPS

    Par conséquent, QUIC ci-dessus est un pseudo TCP + UDP multiplexage TLS + protocole HTTP / 2.

    protocole QUIC est nouveau, pour de nombreux équipements de réseau, je ne sais pas ce qui est QUIC, comme UDP, donc il y aura de nouveaux problèmes. Donc, HTTP / 3 est maintenant lenteur des progrès très populaire, je ne sais pas si la prochaine contre-attaque TCP UDP.

    harcelant

    Près de 30 images, une ligne est tracée à partir de deux lignes sur, gris souvent dur, le travail manuel est également un dessin ah profondément ressenti!

    Slacker Je ne fait pas comme dessiner, mais pour que nous puissions mieux comprendre, après une lutte avec moi-même à plusieurs reprises, a entrepris une consommation physique de temps sans dessin de retour, nous voulons vous aider!

    Créer ah facile, n'est pas facile à dessiner, vous « triple » à pied de est le plus grand soutien et de motivation pour la création de Kobayashi, et nous vous voir la prochaine fois!

    références:

     Ueno a déclaré. Illustration de HTTP. Messages et Telecom Press.

     Luo Jianfeng. Protocole HTTP perspective. Temps Geeks.

     Chen Hao .http vie passée maintenant. Shell Rafraîchissez CoolShell.

    https://coolshell.cn/articles/19840.html

     Obtenir Ruan Yifeng accord .http. Ruan Yifeng journal web.

    L'or et trois médailles d'argent quatre saisons de recrutement, que l'article interviewez vous sécher? Partagez cet article peut être timbre sec ou vue:

    https://blog.csdn.net/blogdevteam/article/details/104691837

    Version 2020 des données Python nettoyage Ultimate Guide
    Précédent
    14nm domestique saluer l'aube, les Pays-Bas importés en douceur dans l'usine de machines de lithographie
    Prochain
    « Remote », « collaboration » a balayé l'occasion, vous savez combien de TA?
    Tokyo flambée des gains de jour de données open source 2k + étoile, GitHub projeter un flux constant de l'épidémie
    300.000 lignes de données, l'analyse Python de deux décennies de sa carrière Bryant | programme de travail
    Ali Huawei Baidu trois piliers, les tarifs élevés 5G, le système d'exploitation Linux est roi | choses réelles chinois rapport de situation de développeur
    Explorer le chemin de la reprise dans un changement de siècle dans la situation - la troisième BRICS coopération think tank Conseil chinois réunion annuelle
    Une paire de baguettes chinoises a provoqué l'amour transnational Egypte
    Lorsque le thème « début du cur n'oubliez pas, rappelez-vous notre mission » éducation
    Président Xi Jinping a fait l'éloge de la communauté internationale message du Nouvel An
    « Nous allons avoir des effets dévastateurs vengeance! »
    Le prix de l'or envolée, marché haussier de l'or à venir? Vous voulez acheter?
    Vague de froid de balayage! Dans la partie orientale de Pékin est la plus falaise de style de refroidissement touche du point de congélation cryogénique
    Jiangxi Fuzhou agréable printemps pittoresque ouvert et l'activation ordonnée du tourisme