Betik dilleri Soketleri derlenen dillere tam olarak aynı şekilde kullanmaktadır.
1) komut dosyası genellikle açılır ve soket kullanır. Bu "çalışma" ya da soket tarafından "çağrılan" değil, ancak doğrudan kitaplıkları (genellikle işletim sistemi için doğal C API içine çağırarak) yoluyla kontrol eder.
2) Evet.
3) Şart değil. En modern betik langauges bir "script" uygulamasında çoklu prizler işleyebilir.
4) N / A 3'e bakın)
Söz ve yorumlarda değiştirmek yanıt düzenleyin:
Bu barındırılan bir sunucu bağlamında bu çalıştırmak için çalışıyoruz artık açıktır. Eğer Apache içinde komut dosyası veya benzer bir sunucu kullanıyorsanız, tipik olarak, işler biraz farklı çalışır. Bir yuva açtı ve Apache tarafından yapılmaktadır, ve işlemek için komut için ilgili verileri (POST / GET sonuçlar, vb) geçen, komut yürütür. Vb, CGI komut dosyası ile uğraşırken Yuva genellikle oyuna gelmez
Bununla birlikte, bu tipik olarak mod_cgi ile aynı kavramlar kullanılarak olur. Bu oldukça fazla komut çalışan bir yürütülebilir dosya kadar sunucu söz konusu olduğunda, ve yürütülebilir çıktı istemciye döndürülen olur ne başka bir şey olduğu anlamına gelir. Bu durumda, (izinleri ve sunucuda doğru kütüphaneleri olması koşuluyla), python komut aslında tamamen Apache bağlamı dışında kendi soket çalışır ayrı bir komut dosyası açabilirsiniz.
Ancak, doğrudan CGI komut dosyası içinde tam bir soket uygulamasını çalıştırmak için (genellikle) iyi bir fikir değil. Bu sonuçları istemciye döndürür önce CGI yürütülebilir tamamlanmasına çalıştırmak için beklemek olacaktır. Apache orada oturup bu tamamlamak için bekleyen biraz "askıda" olacak. Eğer tam bir sunucu başlatıyor ediyorsanız (onlar olma eğilimindedir uzun süren bir süreç, özellikle eğer), Apache komut dosyası kilitli olduğunu düşünüyorum, ve muhtemelen iptal, potansiyel süreci (yapılandırma belirli öldürme, ancak çoğu hosting şirketleri yapacak ) paylaşılan bir sistemde CPU devralarak komut önlemek için.
Eğer komut dosyası içinde yeni bir komut dosyası çalıştırmak ve ardından (CGI yürütülebilir kapatılıyor) dönmek Ancak, diğer komut bir sunucu olarak çalışan, çalışan bırakılabilir. Bu (subprocess kütüphanesini kullanarak, piton örnek) gibi bir şey olurdu:
newProccess = Popen("python MyScript", shell=True)
Yukarıdaki tüm gerçekten olsa, sunucu yapılandırmasına biraz bağlı olduğunu unutmayın. Birçok hosting şirketleri özellikle bu önlenmesi için kendi scripting uygulamalarında soket veya kabuk kütüphanelerin bazılarını yok, bu yüzden sık sık ek olarak C. yürütülebilir hale dönmek zorunda, bu en hosting firmaları için hizmet açısından karşı genellikle - kendini kontrol etmek olurdu.