ทำไมเป็นอย่างนั้น
ล้มเหลวเกือบทันทีในขณะที่
ต้องใช้เวลามากกว่านี้หรือไม่
หากไม่มีเซิร์ฟเวอร์ในพอร์ตเหล่านี้คำขอทั้งสองควรผ่านกระบวนการเดียวกันและควรใช้เวลาเท่ากันในการล้มเหลว อะไรคือความแตกต่าง?
ทำไมเป็นอย่างนั้น
ล้มเหลวเกือบทันทีในขณะที่
ต้องใช้เวลามากกว่านี้หรือไม่
หากไม่มีเซิร์ฟเวอร์ในพอร์ตเหล่านี้คำขอทั้งสองควรผ่านกระบวนการเดียวกันและควรใช้เวลาเท่ากันในการล้มเหลว อะไรคือความแตกต่าง?
คำตอบ:
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