พยายามเข้าถึงเซิร์ฟเวอร์ของ Google บนพอร์ตต่างๆ


2

ทำไมเป็นอย่างนั้น

http://www.google.com:443/

ล้มเหลวเกือบทันทีในขณะที่

http://www.google.com:8080/

ต้องใช้เวลามากกว่านี้หรือไม่

หากไม่มีเซิร์ฟเวอร์ในพอร์ตเหล่านี้คำขอทั้งสองควรผ่านกระบวนการเดียวกันและควรใช้เวลาเท่ากันในการล้มเหลว อะไรคือความแตกต่าง?

คำตอบ:


6

Google ทำ ให้เซิร์ฟเวอร์ทำงานบนพอร์ต 443 หากคุณเรียกดู https://www.google.com หรือ https://www.google.com:443 คุณจะได้รับหน้าการค้นหาปกติของ Google ผ่าน SSL

เมื่อคุณใช้ URL http://www.google.com:443 คุณกำลังบอกเบราว์เซอร์ให้ทำการร้องขอผ่านพอร์ต 443 แต่ใช้ HTTP ที่ไม่ได้เข้ารหัส Google ได้กำหนดค่าเซิร์ฟเวอร์เพื่อปฏิเสธสิ่งนี้และปิดการเชื่อมต่อเนื่องจากคาดว่าจะมีเฉพาะ HTTPS ผ่านพอร์ตนั้น

อย่างไรก็ตามเซิร์ฟเวอร์ของ Google นั้น ไม่ กำลังฟังบนพอร์ต 8080 เมื่อคุณทำการร้องขอไปยังพอร์ต 8080 เบราว์เซอร์ของคุณต้องรอการหมดเวลาก่อนที่จะตัดสินใจว่าคำขอล้มเหลว


คุณสามารถพิสูจน์ได้ทั้งหมดนี้ด้วยตัวคุณเองโดยเปิดเซสชัน telnet ไปที่ www.google.com:443 และพยายามพูด HTTP ที่ไม่ได้เข้ารหัส:

[~]$ telnet www.google.com 443
Trying 66.102.7.104...
Connected to www.l.google.com.
GET / HTTP/1.0
Connection closed by foreign host.

หากคุณลองใช้คำสั่งต่อไปนี้คุณจะเห็นว่าคุณไม่สามารถเชื่อมต่อกับพอร์ต 8080 ได้เลยและใช้เวลาหมดเวลานาน:

[~]$ telnet www.google.com 8080
Trying 66.102.7.104...
telnet: connect to address 66.102.7.104: Operation timed out
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.