Cet article présente principalement Python pour implémenter un serveur http simple en détail. Il a une certaine valeur de référence.
Écrivez un script python pour implémenter un serveur http simple. 🎜>
1. Entrez l'adresse du site Web dans le navigateur : 172.20.52.163:200142. Une fois que le serveur a reçu la demande du navigateur, il lit le contenu du fichier index.html local. Publier sur le navigateurImplémentation du code
server.py#!/usr/bin/python import socket import signal import errno from time import sleep def HttpResponse(header,whtml): f = file(whtml) contxtlist = f.readlines() context = ''.join(contxtlist) response = "%s %d\n\n%s\n\n" % (header,len(context),context) return response def sigIntHander(signo,frame): print 'get signo# ',signo global runflag runflag = False global lisfd lisfd.shutdown(socket.SHUT_RD) strHost = "172.20.52.163" HOST = strHost #socket.inet_pton(socket.AF_INET,strHost) PORT = 20014 httpheader = '''''\ HTTP/1.1 200 OK Context-Type: text/html Server: Python-slp version 1.0 Context-Length: ''' lisfd = socket.socket(socket.AF_INET,socket.SOCK_STREAM) lisfd.bind((HOST, PORT)) lisfd.listen(2) signal.signal(signal.SIGINT,sigIntHander) runflag = True while runflag: try: confd,addr = lisfd.accept() except socket.error as e: if e.errno == errno.EINTR: print 'get a except EINTR' else: raise continue if runflag == False: break; print "connect by ",addr data = confd.recv(1024) if not data: break print data confd.send(HttpResponse(httpheader,'index.html')) confd.close() else: print 'runflag#',runflag print 'Done'
<html> <head> <title>Python Server</title> </head> <body> <h1>Hello python</h1> <p>Welcom to the python world</br> </body> </html>
Test
Résultat du test :root@cloud2:~/slp/pythonLearning/socket# ./server_v1.py connect by ('172.20.52.110', 6096) GET / HTTP/1.1 Host: 172.20.52.163:20014 Connection: keep-alive Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36 Accept-Encoding: gzip,deflate,sdch Accept-Language: zh-CN,zh;q=0.8,en;q=0.6
Navigateur
Recommandations associées :Python implémente une méthode d'appel aléatoire d'un navigateur pour ouvrir une page Web
Python implémente une méthode de personnalisation de l'ordre et de la disposition d'écriture des données dans Excel
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!