Projet de discipline de développement Web: développez un serveur HTTP 1.1 à l'aide de socket. Cela sera développé à l'aide de la langue Python.
Ajouts de ressources (plus âgés):
Télémétrie avec div de mise à jour angulaire à chaque seconde.
Interface mobile mise à jour avec bootstrap.
Fonctionnement de rétroaction à la page 404. La rétroaction est récupérée à l'aide de la méthode Post.
La fonction d'état virtuelle implémentée. Généré automatiquement, uniquement comme une demande '/Virtual/.../status.json' Cette fonctionnalité répond avec l'état du serveur.
Obtention automatiquement de l'adresse IP et de diffusion via Ifconfig. Nous appelons donc simplement 'Server (http_port, Unicast_port)', car les adresses sont obtenues via le package 'Network.py'. Cependant, cette fonctionnalité fonctionne uniquement sur Linux.
Grille de serveur implémentée. Maintenant, avec un propre protocole, le serveur envoie des packages de diffusion à la recherche de nouveaux serveurs. Ainsi, avant de revenir 404, vous chercherez l'appel sur les serveurs adjacents.
Implémentation de ressources dynamiques avec l'interface de passerelle commune. Lorsque vous écrivez à URL / CGI / PROG? Params, le serveur exécutera le prog, à la fois s'il est dans / bin / ou / sbin /, et s'il s'agit d'un programme local. Pour le test, essayez d'exécuter le programme CGIEXECUTable et passez quelques paramètres.
Implémentation de l'authentification de base pour l'accès au chemin. Lorsqu'un chemin est demandé, il sera demandé dans le chemin du fichier .htaccess. Si vous n'en avez pas, 200. Si vous l'avez fait, vous retournez 401. Ensuite, dans la demande suivante, un utilisateur est attendu et passe.
Commande des fichiers en croissance ou de manière décroissante par le nom et la taille à l'aide de paramètres de requête.
Navigation complète à l'interface à l'aide du «répertoire parent».
Les icônes sont chargées via Base64.
L'interface de navigation présente le fichier (nom), taille - avec leurs tailles respectives en octets, KB, MB et GB. Lors de la pâte, cette valeur n'est pas informée - et la dernière modification.
Interface de navigation prête.
ATTENTION DES MYMETYPES UNDONNES ERREURS MYMYPE, Génération d'index incorrecte et chemins dans l'index lié à un endroit incorrect en raison de '.'
Interface créée pour la navigation entre les répertoires. Faites simplement une demande à 127.0.0.1:port/subpath/subsubpath.
Générer index.html pour toute demande de chemin.
Mise à jour de la fonction de retour du 404 introuvable.
Lorsque pour la première fois le client se connecte avec le serveur, le serveur renvoie un cookie "Count = 0", qui est augmenté avec chaque connexion au serveur.
Commencer à traiter les caches de fichiers de la méthode GET: if-modifiée-sincin et if-unmodified-sice implémentée.
Obtention et retour de la longueur du contenu du champ d'en-tête, de type de contenu et dernier modifié.
Retour des demandes GET des fichiers 128 par 128 octets afin de ne pas "noyer" le serveur avec de grands fichiers.
Il lance maintenant un fil pour servir n'importe quel get. Ainsi, lorsqu'une prise se connecte, un fil est libéré pour le servir et le thread principal continue de s'attendre à une autre connexion.
Transformer le fichier serveur en classe.