2013-04-02 8 views
23

का उपयोग कर HTTP अनुरोध कैसे भेजें टेलीनेट का उपयोग करके वेब पेज की सामग्री कैसे प्राप्त करें? (उदाहरण के लिए https://stackoverflow.com/questions पृष्ठ की सामग्री)टेलनेट

+1

उदाहरण 'टेलनेट telehack.com'। [उदाहरणों की सूची] (http://www.telnet.org/htm/places.htm) – William

उत्तर

15

टेलनेट सर्वर नाम 80


प्राप्त

/index.html
30

आप

telnet stackoverflow.com 80 

कर सकता है और फिर पेस्ट

GET /questions HTTP/1.0 
Host: stackoverflow.com 


# add the 2 empty lines above but not this one 

एच पहले, एक प्रतिलिपि

$ telnet stackoverflow.com 80 
Trying 151.101.65.69... 
Connected to stackoverflow.com. 
Escape character is '^]'. 
GET /questions HTTP/1.0 
Host: stackoverflow.com 

HTTP/1.1 200 OK 
Content-Type: text/html; charset=utf-8 
... 
+0

एचआरएम, यह मेरे लिए ठीक काम करता है (और 'स्वीकार करें' हेडर आवश्यक नहीं था)। यदि आप इसे जल्दी से निष्पादित करते हैं (और एक ही शीर्षलेख के साथ एक वास्तविक शीर्षलेख के साथ) तो सीएलआई अनुरोध और ब्राउज़र से एक के बीच अंतर बताना सचमुच असंभव होगा। भेदभाव का एकमात्र तरीका एक बड़े संदर्भ को देखना होगा (उदाहरण के लिए अनुवर्ती अनुरोध या इसकी कमी, या उनका समय, लेकिन फिर भी यह निर्धारिती नहीं है क्योंकि उपयोगकर्ता बाहरी संसाधनों के लोडिंग को अक्षम करने के लिए एक्सटेंशन या सेटिंग का उपयोग कर सकता है)। – jdunk

+0

लाइनों की शुरुआत में अतिरिक्त रिक्त स्थान थे जो 'HTTP/1.1 400 खराब अनुरोध' प्रतिक्रिया के कारण थे। मैंने इसे ठीक किया और एक प्रतिलेख शामिल किया। चीयर्स। –

4

भावी पीढ़ी के लिए है अपने सवाल यह है कि https://stackoverflow.com/questions को एक http अनुरोध भेजने के लिए किया गया था। वास्तविक जवाब यह है: आप टेलनेट के साथ नहीं कर सकते हैं, क्योंकि यह एक https-only पहुंच योग्य यूआरएल है।

तो, आप उदाहरण

$ openssl s_client -connect stackoverflow.com:443 
... 
--- 
GET /questions HTTP/1.1 
Host: stackoverflow.com 

यह आप https प्रतिक्रिया दे देंगे के लिए openssl बजाय telnet, इस तरह उपयोग कर सकते हैं।

संबंधित मुद्दे