418: मैं एक चायदानी हूँ


68

जैसा कि हम सभी जानते हैं, एक HTTP स्टेटस कोड 418 है: मैं एक चायदानी हूँ

आपका मिशन, क्या आपको इसे स्वीकार करना चाहिए, अपने जीव को उपयोग करना है और सबसे छोटा संभव सर्वर लिखना है जो उपरोक्त स्टेटस कोड के साथ किसी भी और हर HTTP अनुरोध पर प्रतिक्रिया करता है।

मानक खामियों सहित, लागू होते हैं

बाहरी स्रोत से वांछित आउटपुट प्राप्त करना

इसमें पृष्ठ के साथ प्रश्न लाने और उस पृष्ठ से समाधान निकालने के लिए एक HTTP अनुरोध करना शामिल है। यह 2011 में हल्के ढंग से वापस आ रहा था, लेकिन अब व्युत्पन्न और निर्बाध है।

इसका अर्थ है कि आप किसी अन्य सर्वर के अनुरोध को केवल पुनः निर्देशित नहीं कर सकते हैं ताकि उसे प्रतिक्रिया वापस मिल सके।


सर्वर कार्यक्षमता के बारे में कुछ भ्रम को संबोधित करते हुए:
आपका सर्वर कुछ भी (या कुछ भी) नहीं कर सकता है, जबकि HTTP अनुरोध किए जाने के बाद कोई HTTP अनुरोध इसे तब तक नहीं किया जाता है जब तक कि यह सही प्रतिक्रिया के साथ उत्तर नहीं देता है।


15
प्रत्येक और हर http अनुरोध के लिए? निश्चित रूप से सिर्फ एक कॉफी के लिए: URI?
डेव

3
क्या हम मान सकते हैं कि हमारे पास पहले से ही रूट विशेषाधिकार हैं? (उदाहरण के लिए बाँध () पोर्ट 80 के लिए ठीक है)
डिजिटल ट्रॉमा

2
@DigitalTrauma हाँ, आप अपने सर्वर के लिए उन्नत विशेषाधिकार मान सकते हैं।
नीत

4
@Knerd मैं बिना किसी ओर झुक रहा हूं, आप एक कार्यक्रम नहीं लिख रहे हैं, आप बस एक को कॉन्फ़िगर कर रहे हैं।
नाइट

2
हे भगवान। IOT के आसपास आने के साथ, इस स्थिति कोड के मौजूद होने का एक वास्तविक कारण हो सकता है!
चमकदार

जवाबों:


39

GNU Awk: 69 अक्षर

स्वयं एक सर्वर (एक समय में एक अनुरोध पर काम करता है), कोई पुस्तकालय उपयोग नहीं करता है।

कनेक्ट करने वाले हर व्यक्ति को 418 भेजें ( 82 69 वर्ण):

BEGIN{while(s="/inet/tcp/80/0/0"){print"HTTP/1.1 418\n"|&s
close(s)}}

हर किसी को कुछ भेजने वाले 418 ( 93 80 अक्षर) भेजें :

BEGIN{while(s="/inet/tcp/80/0/0"){s|&getline
print"HTTP/1.1 418\n"|&s
close(s)}}

हर उस व्यक्ति को 418 भेजें जो एक वैध HTTP GET अनुरोध ( 122 109 वर्ण) भेजता है :

BEGIN{while(s="/inet/tcp/80/0/0"){s|&getline
if(/^GET \S+ HTTP\/1\.[01]$/)print"HTTP/1.1 418\n"|&s
close(s)}}

लेकिन .. कैसे कनेक्ट करें? ;)
ऑप्टिमाइज़र

5
जिस तरह से आप किसी भी वेब सर्वर से जुड़ते हैं। ब्राउज़र, netcat, telnet, wget, curl, एक और जीएनयू awkस्क्रिप्ट, ... सैद्धांतिक रूप से यह स्थानीय होस्ट पर सुनता है: 80 है, लेकिन यह 1) कोई वेब सर्वर के लिए, स्काइप या अन्य प्रोग्राम पोर्ट 80 का उपयोग करना चाहिए; 2) आपको 1024 से नीचे के पोर्ट खोलने के लिए सुपर यूजर होना चाहिए। इसलिए परीक्षण के लिए स्क्रिप्ट में पोर्ट नंबर को 8080 ( s="/inet/tcp/8080/0/0") की तरह कुछ करने के लिए संपादित करना आसान है। pastebin.com/zauP7LMA
मैनटवर्क

2
समझा। ठंडा। यहाँ अओक नोब :) :)
ऑप्टिमाइज़र

1
आप संभवतः 8 जैसे छोटे पोर्ट का उपयोग करके एक बाइट को बचा सकते हैं, जो अप्रकाशित है।
हनीस करपिला

@ हन्नेसकर्प्पिला, यह सही है। लेकिन यह देखते हुए कि अन्य सभी समाधान जो स्पष्ट रूप से एक पोर्ट निर्दिष्ट करते हैं (हास्केल उत्तर के पोर्ट 8888 को छोड़कर) पोर्ट 80 का उपयोग करता है, मैं तुलनात्मक रूप से इसे इस तरह से बेहतर रखता हूं।
मैनटवर्क

32

बैश (33)

nc -lp80 -q1<<<"HTTP/1.1 418
";$0

3
क्या दो न्यूलाइन्स आवश्यक हैं? मेरे लिए केवल एक के साथ ठीक काम करने लगता है। इसके अलावा मेरी गिनती से ऊपर 34 बाइट्स है - मैं अनुमान लगा रहा हूं कि आपका संपादक एक अनावश्यक न्यूलाइन या \0आपकी फ़ाइल के अंत में जोड़ रहा है - आप truncateयह कर सकते हैं और यह अभी भी काम करता है। s='echo HTTP/1.1 418|nc -lp80 -q1;$0' ; echo ${#s}मेरे लिए 33 देता है
डिजिटल ट्रामा

@DigitalTrauma: आप सही हैं - अंतिम नई लाइन स्वचालित रूप से यहाँ के तार में जोड़ दी जाती है: यहाँ बैश-स्ट्रिंग एक अनुगामी न्यूलाइन चार क्यों जोड़ता है? ------ लेकिन मुझे दो संभावित समस्याएं दिखाई देती हैं: 1. स्क्रिप्ट को उम्मीद है कि यह $PATHनिर्देशिकाओं में से एक में संग्रहीत है या इसे एक पथ (पुनरावृत्ति $0) के साथ कहा जाता है । ----- 2. HTTP की आवश्यकता है कि लाइनें \r\nन केवल समाप्त हो जाती हैं \n। यहां स्ट्रिंग होनी चाहिए $"HTTP/1.1 418\r\n\r"(लंबे पठनीय रूप)। ------ और अंत में: स्क्रिप्ट कम हो सकती है: -q1पैरामीटर आवश्यक नहीं है।
पाबौक

2
@DigitalTrauma, @pabouk: आउटपुट को दो नईलाइनों के साथ समाप्त होने की आवश्यकता है। इसलिए, नई कहानियों में से एक अनावश्यक थी (यहां-स्ट्रिंग के कारण), लेकिन echoसंस्करण काम नहीं करता है (कम से कम फ़ायरफ़ॉक्स इसे 418 के रूप में मान्यता नहीं देगा)। हालाँकि, \rएस की जरूरत नहीं है। युक्ति का कहना है कि यह होना चाहिए \r\n\r\n, लेकिन कम से कम फ़ायरफ़ॉक्स और क्रोम स्वीकार करेंगे \n\n, इसलिए ऐसा लगता है कि उन्हें शामिल नहीं करने के लिए गोल्फिंग की भावना में है। -q1पैरामीटर, अपने सिस्टम पर जरूरी हो गया था क्योंकि ब्राउज़र से ही कनेक्शन बंद नहीं होंगे। $0यदि स्क्रिप्ट को निष्पादन योग्य बनाया जाता है और उस तरीके से कॉल किया जाता है तो ठीक काम करता है।
मारीनस

@marinus दिलचस्प है - मैं परीक्षण कर रहा था wgetजिसके साथ सिर्फ एक न्यूलाइन के साथ ठीक लगता है
डिजिटल ट्रॉमा

1
@pabouk - यहां दिलचस्प स्निपेट w3.org/Protocols/HTTP/OldServers.html : "लाइनों को लाइन फीड द्वारा समाप्त माना जाना चाहिए, और पूर्ववर्ती कैरिज रिटर्न चरित्र को नजरअंदाज कर दिया गया"
डिजिटल ट्रॉमा

30

PHP - 85 बाइट्स

<?for($s=socket_create_listen(80);socket_write(socket_accept($s),"HTTP/1.1 418
"););

विंडोज-स्टाइल (CR-LF) लाइन एंडिंग के साथ सहेजे जाने के लिए php_socketsसक्षम होना चाहिए।

मैंने वास्तव में इसे हार्ड कोड गोल्फ के लिए अपनी त्रुटि कोड के रूप में उपयोग किया था : एक टोकन चुनौती बनाएं , लेकिन किसी ने भी गौर नहीं किया।


ब्राउज़र के अनुकूल संस्करण

<?for(socket_getsockname($s=socket_create_listen(80),$n);$t="I'm a teapot";socket_write($c=socket_accept($s),"HTTP/1.0 418 $t
Content-Length: $l

<title>418 $t</title><h1>$t</h1>The requested resource is not suitable for brewing coffee.<hr><i>$n:80</i>"))$l=124+strlen($n);

सीएलआई में स्क्रिप्ट शुरू करें, और अपने ब्राउज़र को इंगित करें http://localhost


1
+1 उपयोगकर्ता की मजबूती के लिए / I'm a teapot:-)
लेविट

20

Node.js (लाइवस्क्रिप्ट)

http मॉड्यूल - 66

require(\http)createServer (->&1.writeHead 418;&1.end!) .listen 80

क्वर्टी के जवाब से प्रेरित ।

net मॉड्यूल - 76

require(\net)createServer (->it.write 'HTTP/1.1 418\r\n';it.end!) .listen 80

2
क्या जिस व्यक्ति ने इस बात की व्याख्या करने के लिए लापरवाही बरती कि वह क्यों?
nyuszika7h

20

रूबी + रैक, 19 बाइट्स

run->e{[418,{},[]]}

के रूप में सहेजा जाना चाहिए config.ru, और rackupकमांड के साथ चलना चाहिए ।

या यदि आप "शुद्ध" रूबी पसंद करते हैं:

Rack::Handler::WEBrick.run->e{[418,{},[]]}

42 बाइट्स + -rrackध्वज = 48 बाइट्स


12

बैश + बीएसडी सामान्य कमांड, 29

अन्य उत्तरों से थोड़ा पीछे हटते हुए:

nc -lp80<<<"HTTP/1.1 418
";$0

मेरे साथ काम करता है wget

उपयोग करने के लिए पहला उत्तर nc, 38

for((;;)){
nc -l 80 <<<HTTP/1.1\ 418
}

मैं रूट विशेषाधिकार मान रहा हूं - निम्नानुसार चलाएं:

sudo bash ./418.sh

3
@ ub3rst4r सही - यही कारण है कि मैंने "बीएसडी सामान्य कमांड" कहा, जिसे शेल स्क्रिप्टिंग के दृष्टिकोण से "पुस्तकालय" माना जा सकता है। ओपी से: "सभी पुस्तकालयों का स्वागत है"
डिजिटल ट्रॉमा

2
एक प्रतिक्रिया एक नई लाइन के साथ समाप्त होनी चाहिए, w3.org/Protocols/HTTP/Response.html
Nit

2
@ नीट - यस - बैश "हियर स्ट्रिंग्स" अपने आप एक नई रेखा के साथ जुड़ जाएगा
डिजिटल ट्रॉमा

1
कैसे के बारे मेंnc -l 80 <<<HTTP/1.1\ 418;$0
16:10 पर core1024

1
दो रिक्त स्थान के साथ भ्रम के लिए क्षमा करें। मैंने ध्यान नहीं दिया कि आपने -pस्विच का उपयोग नहीं किया है :) मैंने फ़ायरफ़ॉक्स के साथ कोड का परीक्षण किया और दो न्यूलाइन्स के बिना स्टेटस कोड को मान्यता नहीं मिली।
पाबौक

9

रूबी (एनसी सिस्टम कमांड) - 35

loop{`nc -l 80 <<<"HTTP/1.1 418"`}

DigitalTrauma को उपयोग करने के विचार के लिए श्रेय मिलना चाहिए nc, हालांकि रूबी बैश से कम पात्रों के साथ एक अनंत लूप बना सकती है :)

रूबी (TCPServer) - 75

require'socket'
s=TCPServer.new 80
loop{(s.accept<<'HTTP/1.1 418
').close}

वह न्यूलाइन जानबूझकर है - वास्तविक न्यूलाइन वर्ण "\ n" से छोटा एक वर्ण है।

रूबी (WEBrick HTTPServer) - 87

require'webrick'
(s=WEBrick::HTTPServer.new).mount_proc(?/){|_,r|r.status=418}
s.start

एक प्रतिक्रिया एक नई पंक्ति के
Nit

1
@DigitalTrauma, मैं उस का उपयोग करने जा रहा था, लेकिन फिर एहसास हुआ कि बैकस्लैश को एक और बैकस्लैश के साथ भाग जाने की आवश्यकता है, इसलिए यह वैसे भी वर्णों की समान संख्या होगी :)
ट्रे थॉमस

@TreyThomas ओह, मैं देख रहा हूँ - इसलिए रूबी को यहाँ भागने के एक अतिरिक्त स्तर की ज़रूरत है
Digital Trauma

8

Node.js, 80

require('http').createServer(function(q,s){s.writeHead(418);s.end()}).listen(80)

प्रतिक्रिया है

HTTP/1.1 418 I'm a teapot
Date: Wed, 19 Nov 2014 21:08:27 GMT
Connection: keep-alive
Transfer-Encoding: chunked

0

2
मुझे लगता है कि यह भयानक है कि नोड मूल त्रुटि का समर्थन करता है ^ ^
Levit

8

अजगर 3 106

s=__import__('socket').socket(2,1) 
s.bind(('',80))
s.listen(9)
while 1:s.accept()[0].send('HTTP/1.1 418\n')

1
पायथन में गोल्फ के लिए टिप्स में हॉलवबो की टिप्पणी के आधार पर , कम है। from socket import*;s=socket(AF_INET,SOCK_STREAM)
मैनटवर्क

@manatwork धन्यवाद, क्या अनंत लूप का एक छोटा तरीका है? मुझे एक भी सुझाव नहीं मिला ...
Tuomas Laakkonen

3
while 1:s.accept()[0].sendall(bytes('HTTP/1.1 418\n','UTF8'))- जब तक मैं कुछ याद नहीं किया। (वैसे, नए पात्रों को एक ही वर्ण को गिनने के लिए स्वतंत्र महसूस करें, क्योंकि भाषा उन्हें अनुमति देती है। इस तरह आप कमांड को अलग करने के बजाय नई-नई पंक्तियों को अलग कर देते हैं ;।)
मैनटवर्क

प्रश्न 80 के स्वामी की टिप्पणी के अनुसार, पोर्ट 80 पर पहुंचकर आप 2 पात्रों को काट सकते हैं । एक बदसूरत चीज जो पोर्टेबिलिटी को तोड़ सकती है, लेकिन यहां स्वीकार्य हो सकती है: स्थिरांक के मूल्यों का सीधे उपयोग करें s=socket(2,1)(कम से कम वे मेरे लिनक्स पर उनके मूल्य हैं)।
मैनावर्क

प्रलेखन के listen()पैरामीटर के लिए कहता है कि "अधिकतम मूल्य प्रणाली पर निर्भर है (आमतौर पर 5)"। इसलिए 10 के बजाय, 9 अधिक है जो पर्याप्त और 1 वर्ण छोटा है। और इसके बजाय bytes('HTTP/1.1 418\n','UTF8')एक शाब्दिक b'HTTP/1.1 418\n'पर्याप्त है। या यदि आप कोड पायथन 2 बनाते हैं, तो bबाईट्रेसेफिक्स की अब कोई आवश्यकता नहीं है। और छोटी send()भी काफी लगती है।
मैनटवर्क

7

हास्केल - 142 बाइट्स

import Network
import System.IO
main=listenOn(PortNumber 8888)>>=f
f s=do{(h,_,_)<-accept s;hPutStr h"HTTP/1.1 418\r\n";hFlush h;hClose h;f s}

5

Tcl (> = 8.5), 78 बाइट्स

संपादित करें - अनुपालन के लिए एक अतिरिक्त न्यूलाइन (कुल 2 नईलाइन्स) में जोड़ा गया।

socket -server {apply {{c - -} {puts $c "HTTP/1.1 418
";close $c}}} 80
vwait f

एक प्रतिक्रिया एक नई पंक्ति के साथ समाप्त होनी चाहिए, w3.org/Protocols/HTTP/Response.html
Nit

3
@ निट - हां, जब तक-गनलाइन विकल्प नहीं दिया जाता है, तब तक Tcl पुट अपने आप एक नई पंक्ति को जोड़ देगा। tcl.tk/man/tcl/TclCmd/puts.htm
डिजिटल ट्रामा

5

जूलिया: 86 73 वर्ण

s=listen(80)
while 1<2
c=accept(s)
write(c,"HTTP/1.1 418

")
close(c)
end

मुझे नहीं लगता कि आपको वास्तविक "आई एम ए चायदानी" भाग की आवश्यकता है - प्रतिक्रिया कोड पर्याप्त होना चाहिए।
नियति

हाँ, मैंने इसे देखा। लेकिन जैसा कि मैंने जूलिया के स्कोर पर ज्यादा मदद नहीं की, मैंने इसे पूरा रखा। लेकिन भाषाओं की तुलना को सुविधाजनक बनाने के लिए इसे हटाना बेहतर होगा।
11

5

पॉवर्सशैल, 398

$Listener = New-Object System.Net.Sockets.TcpListener([System.Net.IPAddress]::Parse("10.10.10.10"), 80)
$Listener.Start()
while($true)
{
    $RemoteClient = $Listener.AcceptTcpClient()
    $Stream = $RemoteClient.GetStream()
    $Writer = New-Object System.IO.StreamWriter $Stream
    $Writer.Write("HTTP/1.1 418 I'm a Teapot`nConnection: Close`n`n")
    $Writer.Flush()
    $RemoteClient.Close()
}

258

$l=New-Object System.Net.Sockets.TcpListener([System.Net.IPAddress]::Parse("10.10.10.10"),80);$l.Start();while($true){$r = $l.AcceptTcpClient();$s = $r.GetStream();$w = New-Object System.IO.StreamWriter $s;$w.Write("HTTP/1.1 418`n`n");$w.Flush();$r.Close()}

5

आर, 80 वर्ण

आर के साथ पहले कभी सॉकेट प्रोग्रामिंग नहीं की थी, लेकिन मैं इसे आजमाऊंगा:

repeat{s=socketConnection(,80,T,open="r+");cat("HTTP/1.1 418\n",file=s);close(s)}

यहां socketConnectionएक सॉकेट खोलता है: पहला तर्क मेजबान होना चाहिए, डिफ़ॉल्ट होने के नाते localhostहम इसे यहां छोड़ सकते हैं; दूसरा तर्क वह पोर्ट है जिसका कोई डिफॉल्ट नहीं है, serverजब निर्दिष्ट TRUEसॉकेट बनाता है तो तर्क , अगर FALSEयह सिर्फ एक मौजूदा से जोड़ता है। T, डिफ़ॉल्ट रूप से TRUE, आर के बराबर है ।

संपादित करें: जैसा कि @AlexBrown द्वारा सुझाए गए संपादन में सुझाया गया है, यह 69 वर्णों में छोटा किया जा सकता है :

repeat cat("HTTP/1.1 418\n",file=s<-socketConnection(,80,T))+close(s)

4

Node.js कोआ , 61 बाइट्स

require('koa')().use(function*(){this.status=418}).listen(80)

उत्तर:

HTTP/1.1 418 I'm a teapot
X-Powered-By: koa
Content-Type: text/plain; charset=utf-8
Content-Length: 12
Date: Thu, 20 Nov 2014 07:20:36 GMT
Connection: close

I'm a teapot

नोड v0.11.12 + की आवश्यकता है

ऐसे दोड़ो:

node --harmony app.js

क्या है function*?
nyuszika7h 17

2
यह एक जनरेटर फ़ंक्शन है , ईसीएमएस्क्रिप्ट 6 का हिस्सा है, सद्भाव प्रस्ताव।
cPu1

4

शैल + समाज, ६०

socat tcp-l:80,fork exec:'printf HTTP/1.1\\ 418\\ T\r\n\r\n'

echo -e HTTP/1.1 418 T\r\n\rछोटा है।
jimmy23013 15

\\ Tयहां तक कि जरूरत नहीं है।
nyuszika7h

3

MATLAB, 97 86 बाइट्स

वास्तव में पूर्ण बाइट-गिनती के संदर्भ में एक गंभीर दावेदार नहीं है, लेकिन मैं इसे पोस्ट करना चाहूंगा क्योंकि मुझे नहीं लगता कि गणितीय उपकरण का उपयोग करके पूरी तरह कार्यात्मक वेबसर्वर लिखना संभव होगा। संपत्ति के उपयोग को छोटा करने पर ध्यान दें : 'Ne','s'आंतरिक रूप से फैलता है 'NetworkRole', 'server'

t=tcpip('0.0.0.0','Ne','s');while 1
fopen(t)
fprintf(t,'HTTP/1.1 418\n')
fclose(t)
end

3

आप एक .htaccessफ़ाइल और php का उपयोग करके कम से कम प्रयास कर सकते हैं ।

आपके सर्वर की सभी पहुंच स्थिति 418 लौटाएगी।

नीचे कोड है:

.htaccess (28 बाइट्स)

RewriteRule .* index.php [L]

PHP ( 38 19 बाइट्स)

<<?header(TE,1,418);

मुझे बाइट्स का एक गुच्छा बचाने के लिए @primo का धन्यवाद !


मैंने इसका परीक्षण किया है और इसकी पुष्टि करता है कि यह वांछित परिणाम देता है!

http://i.stack.imgur.com/wLb9p.png

वैसे, "पेडिडो" का अर्थ है "अनुरोध" और "रेस्पॉस्टा" का अर्थ है "उत्तर"।


-1, यह एक पूर्ण कार्यक्रम नहीं है। यह एक बाहरी वेब सर्वर पर निर्भर करता है।
nyuszika7h 17

@ nyuszika7h वास्तव में, यह एक मॉड्यूल के रूप में स्थापित PHP के साथ अपाचे पर निर्भर करता है। आपका तर्क मान्य और अमान्य दोनों है। Apache केवल PHP फ़ाइल तक पहुँच को पुनर्निर्देशित करती है, PHP फ़ाइल कोड का ध्यान रखती है।
इस्माईल मिगुएल

@ nyuszika7h यदि हम उस लेयर पर जाते हैं, तो आप अपने PHP कोड को चलाने के लिए कंसोल का भी उपयोग नहीं कर सकते हैं। अपाचे स्टार्टर है। वह ट्रिगर जो गोली दागता है। कंसोल से PHP फ़ाइल चलाना, कंसोल को ट्रिगर बना देगा।
इस्माइल मिगुएल

आप अपाचे पर पहले से ही चल रहे हैं, और मुझे नहीं लगता कि यह डिफ़ॉल्ट कॉन्फ़िगरेशन को बदलने के बिना भी काम करेगा। मुझे परवाह नहीं है कि आप क्या कहते हैं, इसका कोई तरीका नहीं है कि मैं इसे वैध होने के रूप में देख सकता हूं। लेकिन आपको @Nit से पूछना चाहिए, क्योंकि यह उनका सवाल है।
nyuszika7h 18

@ nyuszika7h यदि यह अमान्य था, तो ओपी ने पहले ही कहा होगा।
इस्माइल मिगुएल

2

CoffeeScript के साथ नोड्स (76)

require("connect")().use((q,s,n)->s.writeHead 418;s.end();return;).listen 80

बस इसे जावास्क्रिप्ट में संकलित करें, फिर आपको चलाने की आवश्यकता है npm install connect। इसके बाद इसे से शुरू करेंnode server.js


2

nginx - 35

events{}http{server{return 418;}}

कि nginx.conf में फेंक, nginx शुरू।

सुनिश्चित नहीं है कि अगर यह मानक खामियों का उपयोग करता है "काम करने के लिए अंतर्निहित कार्यों का उपयोग करना" या "चुनौती का शाब्दिक अर्थ भी व्याख्या करना।" ओह, ऐसा लगता है कि ओपी इस जवाब को पसंद नहीं करेगा।


अगर आप गिरा तो भी यह काम करेगा ;?
सिरिल

+ 4 / -4: अच्छी तरह से विवाद पर किया गया: डी
बिल्ली

2

पर्ल, 78

use Web::Simple;sub dispatch_request{sub{[418,[],[]]}}__PACKAGE__->to_psgi_app

के रूप में चलाते हैं plackup whatever.pl


यदि आप एक प्लाक आवेदन चाहते हैं, तो बस sub{[418,[],[]]}पर्याप्त होना चाहिए। (16 अक्षर।)
tobyink

बेशक आप सही कह रहे हैं! ऐसा नहीं है कि मैं किसी भी ढांचे का उपयोग कर रहा हूं , इसे लोड क्यों कर रहा हूं ? :)
हॉब

@tobyink इसे बेझिझक प्रस्तुत कर सकती है हालांकि इसे अपना नाम :)
hobbs

2

पायथन 2.7 / Django, 94 बाइट्स

(डिफ़ॉल्ट बायलरप्लेट से जोड़ा गया django-admin.py startproject) urls.py में:

import django.http.HttpResponse as r;urlpatterns=patterns(url(r'^*$',lambda q:r(status=418)))

1

C # + OWIN 251 240

मैं वास्तव में उम्मीद कर रहा था कि यह छोटा होगा, लेकिन लंबे नामस्थानों ने उस योजना को बर्बाद कर दिया। Microsoft.Owin.SelfHostNuGet पर उपलब्ध पैकेज की आवश्यकता है ।

using Owin;class P{static void Main(){Microsoft.Owin.Hosting.WebApp.Start<P>("http://localhost");while(0<1);}public void Configuration(IAppBuilder a){a.Run(c=>{c.Response.StatusCode=418;return System.Threading.Tasks.Task.FromResult(0);});}}

1

कनेक्ट के साथ नोड। js (78)

require('connect')().use(function(q,s,n){s.writeHead(418);s.end()}).listen(80)

आपको npm install connectपहले दौड़ने की जरूरत है । फिर इसके साथ शुरू करेंnode server.js


1

जाओ, 162 बाइट्स

package main
import "net/http"
func main(){http.HandleFunc("/",func(w http.ResponseWriter,r *http.Request){w.WriteHeader(418)})
http.ListenAndServe(":80", nil)
}

1

फैक्टर, 101 141 बाइट्स

[ utf8 <threaded-server> readln 10 base> >>insecure [ "HTTP/1.1 418\r" print flush ] >>handler [ start-server ] in-thread start-server drop ]

कनेक्ट करने वाले सभी को 418 लौटाएं।


1

जावा 7, 208 बाइट्स

import java.net.*;class R{public static void main(String[]a)throws Exception{for(ServerSocket s=new ServerSocket(80);;){Socket p=s.accept();p.getOutputStream().write("HTTP/1.0 418\n".getBytes());p.close();}}}

इस प्रश्न के लिए एक जावा उत्तर की आवश्यकता थी।

poke@server ~
$ curl -i localhost:80
HTTP/1.0 418

स्थिति संदेश कहां है?
क्वर्टी

@Qwertiy मुझे लगता है कि यह प्रश्न केवल स्थिति कोड के लिए पूछता है जिसे मैं पूर्णांक के रूप में व्याख्या करता हूं, इसलिए यह निम्नानुसार है कि स्थिति संदेश / कारण की कड़ाई से आवश्यकता नहीं है।
प्रहार

मुझे निवास करने के लिए नहीं, लेकिन मुझे लगता है कि यह स्थिति पाठ के साथ होना चाहिए।
20 अक्टूबर को क्वर्टी

3
जावा 8 पहले से ही प्राप्त करें> _>
पावेल

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.