Maison  >  Article  >  Java  >  Entretien Java sur les protocoles HTTP et HTTPS

Entretien Java sur les protocoles HTTP et HTTPS

王林
王林avant
2020-12-29 10:25:382547parcourir

Entretien Java sur les protocoles HTTP et HTTPS

Tout d'abord, jetons un coup d'œil aux questions d'entretien d'Alibaba et de SF Express.

Questions d'entretien avec Alibaba : Que savez-vous du protocole HTTP, quelle est la différence entre HTTP et HTTPS, comment la sécurité de HTTPS est-elle mise en œuvre ? 🎜>Question d'entretien SF Express : http expliquer

(Partage de vidéos d'apprentissage : tutoriel vidéo Java

)

La réponse détaillée est la suivante :

1. Introduction au HTTP


Le protocole HTTP est l'abréviation de Hyper Text Transfer Protocol. Le protocole HTTP fonctionne sur une architecture client-serveur. En tant que client HTTP, le navigateur envoie toutes les requêtes au serveur HTTP, c'est-à-dire au serveur WEB, via l'URL. Le serveur Web envoie des informations de réponse au client sur la base de la demande reçue.

2. Caractéristiques du protocole HTTP
Aucune connexion : Le sens de l'absence de connexion est de limiter chaque connexion à ne traiter qu'une seule requête. Une fois que le serveur a traité la demande du client et reçu la réponse du client, il se déconnecte. Cette méthode permet de gagner du temps de transmission. Stateless : Le protocole HTTP est un protocole sans état. Sans état signifie que le protocole n'a aucune capacité de mémoire pour le traitement des transactions. L'absence de statut signifie que si un traitement ultérieur nécessite les informations précédentes, celles-ci doivent être retransmises, ce qui peut entraîner une augmentation de la quantité de données transférées par connexion. En revanche, le serveur répond plus rapidement lorsqu’il n’a pas besoin d’informations préalables.

3. Codes d'état HTTP
1xx : Informations d'indication – indique que la demande a été reçue, continuez le traitement 2xx : Succès – indique que la demande a été reçue. a été reçu avec succès, Comprendre, accepter 3xx : Redirection – des mesures supplémentaires doivent être prises pour terminer la demande
4xx : Erreur client – ​​la demande contient une erreur de syntaxe ou la demande ne peut pas être satisfaite
5xx : Côté serveur erreur – le serveur n'a pas réussi à y répondre Demande légitime
Codes d'état courants :

200 OK                     //客户端请求成功400 Bad Request            //客户端请求有语法错误,不能被服务器所理解401 Unauthorized           //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用 403 Forbidden              //服务器收到请求,但是拒绝提供服务404 Not Found              //请求资源不存在,eg:输入了错误的URL500 Internal Server Error  //服务器发生不可预期的错误503 Server Unavailable     //服务器当前不能处理客户端的请求,一段时间后可能恢复正常

4. Comment fonctionne HTTP

Le protocole HTTP définit comment un client Web demande une page Web à un serveur Web et comment le serveur transmet la page Web au client. Le protocole HTTP utilise un modèle requête/réponse. Le client envoie un message de demande au serveur. Le message de demande contient la méthode de demande, l'URL, la version du protocole, l'en-tête de la demande et les données de la demande. Le serveur répond avec une ligne d'état qui inclut la version du protocole, le code de réussite ou d'erreur, les informations sur le serveur, les en-têtes de réponse et les données de réponse.
Voici les étapes de la requête/réponse HTTP :
1. Le client se connecte au serveur Web
Un client HTTP, généralement un navigateur, communique. avec le serveur Web Etablissez une connexion socket TCP sur le port HTTP du serveur (80 par défaut). Par exemple, http://www.baidu.con.
2. Envoyer une requête HTTP
Via le socket TCP, le client envoie un message de requête texte au serveur Web. Un message de requête se compose de la ligne de requête, Il. se compose de 4 parties : en-tête de demande, ligne vide et données de demande.
3. Le serveur accepte la demande et renvoie une réponse HTTP
Le serveur Web analyse la demande et localise la ressource demandée. Le serveur écrit une copie de la ressource sur le socket TCP, qui est lue par le client. Une réponse se compose de quatre parties : la ligne d'état, l'en-tête de réponse, la ligne vide et les données de réponse.
4. Libérer la connexion TCP
Si le mode de connexion est fermé, le serveur ferme activement la connexion TCP, et le client ferme passivement la connexion et libère le Connexion TCP ; si le mode de connexion est fermé S'il est keepalive, la connexion sera maintenue pendant un certain temps et les requêtes pourront continuer à être reçues pendant ce temps
5. analyse le contenu HTML
Navigation du client Le serveur analyse d'abord la ligne d'état pour un code d'état indiquant si la demande a réussi. Ensuite, chaque en-tête de réponse est analysé et l'en-tête de réponse indique au document HTML suivant plusieurs octets et le jeu de caractères du document. Le navigateur client lit les données de réponse HTML, les formate selon la syntaxe HTML et les affiche dans la fenêtre du navigateur.
Par exemple : tapez l'URL dans la barre d'adresse du navigateur et appuyez sur Entrée, vous passerez par le processus suivant :
1. Le navigateur demande au serveur DNS de résoudre l'adresse IP correspondant au nom de domaine dans l'URL ;
2 , après avoir analysé l'adresse IP, établissez une connexion TCP avec le serveur en fonction de l'adresse IP et du port par défaut 80
3. Le navigateur émet une requête HTTP pour lire le fichier (le fichier correspondant à la partie après le nom de domaine dans l'URL), et la demande rapporte Le texte est envoyé au serveur en tant que données du troisième message de la négociation à trois voies TCP
4. Le serveur répond à la demande du navigateur et ; envoie le texte html correspondant au navigateur ;
5. Libérez la connexion TCP ;
6. Le navigateur convertit le texte html et affiche le contenu

(Pour des questions d'entretien plus connexes ; , veuillez visiter : questions et réponses d'entretien Java)

5. Quelle est la différence entre HTTP et HTTPS
HTTPS : C'est un canal HTTP destiné à la sécurité En termes simples, c'est une version sécurisée. de HTTP, c'est-à-dire HTTP La couche SSL est ajoutée ci-dessous. La base de sécurité de HTTPS est SSL, donc les détails du cryptage nécessitent SSL.
Les principales fonctions du protocole HTTPS peuvent être divisées en deux types : l'une consiste à établir un canal de sécurité des informations pour assurer la sécurité de la transmission des données ; l'autre est de confirmer l'authenticité du site Web ;
Les principales différences entre HTTPS et HTTP sont les suivantes :
1. Le protocole https nécessite de demander un certificat auprès de CA Généralement, il y a moins de certificats gratuits, donc des frais sont requis.
2. http est un protocole de transfert hypertexte et les informations sont transmises en texte brut, tandis que https est un protocole de transmission sécurisé et crypté SSL.
3. http et https utilisent des méthodes de connexion complètement différentes et utilisent des ports différents. Le premier est 80 et le second est 443.
4. La connexion http est très simple et sans état ; le protocole HTTPS est un protocole réseau construit à partir du protocole SSL+HTTP qui peut effectuer une transmission cryptée et une authentification d'identité, et est plus sécurisé que le protocole http.
6. Comment la sécurité du HTTPS est-elle mise en œuvre ?

Entretien Java sur les protocoles HTTP et HTTPS
(1) Les clients utilisent les URL https pour accéder au serveur Web. Conditions requises Établissez une connexion SSL avec le serveur Web.
(2) Après avoir reçu la demande du client, le serveur Web transmettra une copie des informations du certificat du site Web (le certificat contient la clé publique) au client.
(3) Le navigateur du client et le serveur Web commencent à négocier le niveau de sécurité de la connexion SSL, qui est le niveau de cryptage des informations.
(4) Le navigateur du client établit une clé de session en fonction du niveau de sécurité convenu par les deux parties, puis utilise la clé publique du site Web pour crypter la clé de session et la transmet au site Web.
(5) Le serveur Web utilise sa propre clé privée pour déchiffrer la clé de session.
(6) Le serveur Web utilise la clé de session pour crypter la communication avec le client.
Entretien Java sur les protocoles HTTP et HTTPS

Recommandations associées : Tutoriel d'introduction à Java

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer