command line - पायथन के http.server(या SimpleHTTPServer) के लिए एक तेज़ विकल्प क्या है?




command-line command-line-tool (7)

पाइथन का http.server (या पायथन 2 के लिए SimpleHTTPServer) कमांड लाइन से वर्तमान निर्देशिका की सामग्री को प्रस्तुत करने का एक शानदार तरीका है:

python -m http.server

हालांकि, जहां तक ​​वेब सर्वर जाते हैं, यह बहुत slooooow है ...

यह व्यवहार करता है जैसे कि यह सिंगल थ्रेडेड है, और कभी-कभी RequJS का उपयोग करते हुए जावास्क्रिप्ट एएमडी मॉड्यूल लोड करते समय टाइमआउट त्रुटियों का कारण बनता है। बिना किसी छवि वाले एक साधारण पृष्ठ को लोड करने में पांच से दस सेकंड लग सकते हैं।

एक तेज़ विकल्प क्या है जो सुविधाजनक है?


node.js के लिए http-server बहुत सुविधाजनक है, और पायथन के SimpleHTTPServer से बहुत तेज़ है। यह मुख्य रूप से है क्योंकि यह क्रमिक अनुरोधों के बजाय, अनुरोधों के समवर्ती हैंडलिंग के लिए एसिंक्रोनस आईओ का उपयोग करता है।

स्थापना

यदि आप पहले से नहीं हैं तो node.js इंस्टॉल करें। फिर विश्व स्तर पर स्थापित करने के लिए -g विकल्प का उपयोग करके, पैकेज को स्थापित करने के लिए नोड पैकेज प्रबंधक ( npm ) का उपयोग करें। यदि आप विंडोज़ पर हैं तो आपको व्यवस्थापक अनुमतियों के साथ एक प्रॉम्प्ट की आवश्यकता होगी, और लिनक्स / ओएसएक्स पर आप कमांड को sudo करना चाहेंगे:

npm install http-server -g

यह किसी भी आवश्यक निर्भरता डाउनलोड करेगा और http-server स्थापित करेगा।

उपयोग

अब, किसी भी निर्देशिका से, आप टाइप कर सकते हैं:

http-server [path] [options]

पथ वैकल्पिक है, यदि यह मौजूद है, तो ./public को डिफॉल्ट करना अन्यथा ./

विकल्प [डिफ़ॉल्ट] हैं:

  • -p पोर्ट नंबर को सुनने के लिए [8080]
  • -a मेजबान पता [localhost] से बांधने के लिए
  • -i प्रदर्शन निर्देशिका सूचकांक पेज [सच]
  • -s या --silent मूक मोड कंसोल पर लॉग इन नहीं करेगा
  • -h या --help मदद संदेश प्रदर्शित करता है और बाहर निकलता है

तो पोर्ट 8000 पर वर्तमान निर्देशिका की सेवा के लिए, टाइप करें:

http-server -p 8000

polpetta एक कोशिश करो ...

npm install -g polpetta

तब आप कर सकते हो

polpetta ~ / फ़ोल्डर

और आप जाने के लिए तैयार हैं :-)


मुझे python -m http.server अविश्वसनीय मिला - कुछ प्रतिक्रियाओं में सेकंड लगेंगे।

अब मैं Ran https://github.com/m3ng9i/ran नामक सर्वर का उपयोग करता हूं

रण: गो में लिखा एक साधारण स्थिर वेब सर्वर


मैं अनुशंसा करता हूं: मुड़ ( http://twistedmatrix.com )

पाइथन में लिखित एक इवेंट-संचालित नेटवर्किंग इंजन और ओपन सोर्स एमआईटी लाइसेंस के तहत लाइसेंस प्राप्त है।

यह क्रॉस प्लेटफ़ॉर्म है और 10.5 के बाद से ओएस एक्स पर प्रीइंस्टॉल किया जाता है। अन्य चीजों के अलावा आप वर्तमान निर्देशिका में एक सरल वेब सर्वर शुरू कर सकते हैं:

twistd -no web --path=.

विवरण

विकल्पों की व्याख्या (अधिक के लिए twistd --help देखें):

-n, --nodaemon       don't daemonize, don't use default umask of 0077
-o, --no_save        do not save state on shutdown

"वेब" एक कमांड है जो ट्विस्ट एसिंक इंजन के शीर्ष पर एक साधारण वेब सर्वर चलाता है। यह कमांड लाइन विकल्प भी स्वीकार करता है ("वेब" कमांड के बाद - अधिक के लिए twistd web --help देखें):

  --path=             <path> is either a specific file or a directory to be
                      set as the root of the web server. Use this if you
                      have a directory full of HTML, cgi, php3, epy, or rpy
                      files or any other files that you want to be served up
                      raw.

अन्य आदेशों का भी एक समूह है जैसे कि:

conch            A Conch SSH service.
dns              A domain name server.
ftp              An FTP server.
inetd            An inetd(8) replacement.
mail             An email service
... etc

स्थापना

उबंटू

sudo apt-get install python-twisted-web (or python-twisted for the full engine)

मैक ओएस-एक्स (10.5 के बाद से पूर्वस्थापित है, या मैकपोर्ट्स में उपलब्ध है)

sudo port install py-twisted

विंडोज

installer available for download at http://twistedmatrix.com/

HTTPS

ट्विस्ट कनेक्शन को एन्क्रिप्ट करने के लिए सुरक्षा प्रमाणपत्र का भी उपयोग कर सकते हैं। इसे अपने मौजूदा --path और --port (सादा HTTP के लिए) विकल्पों के साथ प्रयोग करें।

twistd -no web -c cert.pem -k privkey.pem --https=4433

सर्वर के रूप में Servez का उपयोग करना

  1. Servez डाउनलोड Servez
  2. इसे स्थापित करें, इसे चलाएं
  3. सेवा करने के लिए फ़ोल्डर चुनें
  4. "स्टार्ट" चुनें
  5. http://localhost:8080 या "ब्राउज़र लॉन्च करें" चुनें

नोट: मैंने इसे एक साथ फेंक दिया क्योंकि क्रोम के लिए वेब सर्वर दूर जा रहा है क्योंकि क्रोम ऐप्स के लिए समर्थन हटा रहा है और क्योंकि मैं उन कला छात्रों का समर्थन करता हूं जिनके पास कमांड लाइन के साथ शून्य अनुभव है


webfs आज़माएं, यह छोटा है और यह node.js या पायथन स्थापित प्लेटफॉर्म पर निर्भर नहीं है।


go 1.0 में एक http सर्वर और कोड की कुछ पंक्तियों के साथ फाइलों की सेवा के लिए उपयोग शामिल है

package main

import (
    "fmt"; "log"; "net/http"
)

func main() {
    fmt.Println("Serving files in the current directory on port 8080")
    http.Handle("/", http.FileServer(http.Dir(".")))
    err := http.ListenAndServe(":8080", nil)
    if err != nil {
        log.Fatal("ListenAndServe: ", err)
    }
}

go run myserver.go या निष्पादन योग्य go build myserver.go का उपयोग करके इस स्रोत को चलाएं







simplehttpserver