protocol http https บน port 80 port 443 และความสับสน

protocol http https บน port 80 port 443 และความสับสน

วันนี้ได้รับซองจดหมายคำถามมาครับ ว่าด้วยเรื่องของ Port , Protocol ของ http และ https ก็เลยหยิบมาตอบ และเขียนเป็นบทความเลยดีกว่า เพราะ protocol http เป็นเรื่องที่คนทำเว็บ จำเป็นต้องเข้าใจ ถ้าคุณต้องการเป็นคนที่เหนือกว่าคนทำเว็บธรรมดาๆคนหนึ่งครับ

เรื่องพื้นฐานจริงๆคือ IP และ Port

ขอเล่าแบบคร่าวๆ ของเรื่อง IP เพราะว่าเราจำเป็นต้องเข้าใจก่อน ว่า เจ้า IP เนี่ย มันเปรียบได้กับ เลขที่บ้านครับ ก่อนที่เราจะไป พบเพื่อนของเรา (การติดต่อกับ IP ดังกล่าว) เราก็ต้องรู้บ้านเลขที่ ที่แน่ชัด เพื่อจะไปหาได้ถูกต้อง เมื่อเราไปถึงบ้านเพื่อนเรา เราจะเข้าไปคุยกับเพื่อนเราในบ้านเค้าได้ เราก็ต้องเลือกว่า เราจะเข้าทางประตู หรือทางหน้าต่าง บานไหน ชั้นบน หรือ ชั้นล่าง ถ้าเปรียบ ประตู หน้าต่าง ก็เหมือน port ต่างๆ ประตูเป็น port 1 หน้าต่างเป็น port 2 เป็นต้นครับ ดังนั้นแล้ว การที่เราจะเข้าไปคุยกับเพื่อนเราได้ เราจึงจำเป็นต้องรู้ IP และ port นั่นเอง ถึงจะไปถึงจุดหมายปลายทางได้อย่างถูกต้อง

protocol ก็เหมือน ภาษาที่เราใช้

หากว่า เพื่อนเราเค้ามีความแปลก ตรงที่ว่า เค้าตกลงกับเราเอาไว้ว่า ถ้าเราเข้าทางประตู เค้าจะพูดภาษาไทย ถ้าเราเข้าทางหน้าต่าง เค้าจะพูดภาษาอังกฤษ ดังนั้นแล้ว เวลาเราเข้าทางประตู แล้วไปพูดภาษาอังกฤษกับเค้า เค้าก็ไม่เข้าใจเราครับ เพราะเราไม่ได้ตกลงกันเอาไว้แบบนี้ แต่ว่า ข้อตกลงที่ว่านี้ เกิดจากการตกลงร่วมกัน ที่ยินยอมจะใช้ตามข้อกำหนดนี้ นั่นหมายความว่า เราสามารถเปลี่ยนใหม่ได้ว่า ถ้าเข้าทางประตู ให้คุยภาษาฝรั่งเศษ ถ้าเข้าทางหน้าต่าง ให้คุยภาษารัสเซีย ก็ได้เช่นกัน ทั้งๆที่ยังเป็นบ้านเพื่อนหลังเดิม และทางเข้าทางเดิม

IP Port Protocol เมื่อมารวมกัน

ดังนั้น เราก็จะได้ว่า เมื่อเราจะติดต่อแลกเปลี่ยนข้อมูลกับปลายทางที่ไหนก็ตาม เราต้องรู้ IP และ port ที่แน่ชัดเสมอ เพื่อเราจะได้ไม่หลง และเรายังต้องรู้ Protocol ที่เราได้ตกลงไว้ว่าจะใช้ร่วมกันด้วย ทีนี้ปัญหาเกิดกับ คนที่ใช้ protocol http https เพราะว่า หลายคนไม่รู้ว่ามันทำงานด้วย port อะไร

protocol http

http เป็น protocol ที่เค้ากำหนดมาตรฐานเอาไว้ เป็นข้อตกลงกลาง เพื่อการใช้งานร่วมกันได้อย่างไม่เกิดปัญหา ก็คือใช้ port 80 ดังนั้น เราจึงสามารถเข้าเว็บโดยปกติได้ด้วย port 80 เช่น http://meewebfree.com:80 http://google.com:80 แต่ว่า web browser ที่เราใช้งานเค้าจะไม่แสดงมันออกมา เพราะเค้าไม่อยากทำให้ user สับสนจึงละไว้ ในฐานที่เข้าใจนั่นเอง

protocol https

ก็คล้ายกันกับ http มาตรฐานออกแบบร่วมกันไว้ว่า https ทำงานบน port 443 เราไม่ต้องพิมพ์ https://google.com:443 เว็บก็ยังทำงานแบบ https ได้

แล้วใช้ http บน port 443 หรือใช้ https บน port 80 ได้หรือเปล่า

คำตอบคือ ได้ เพราะอย่างที่บอก มันเป็นสิ่งที่ต้องตกลงร่วมกัน ระหว่าง เจ้าของบ้าน กับเพื่อนบ้านที่มาเยี่ยมเยียน ดังนั้น ถ้าเจ้าของบ้านบอกว่า บ้านฉัน http port 443 และ https port 80 ก็ไม่มีใครว่าครับ แต่ว่าเค้าไม่นิยมทำเท่านั้นเอง แล้วมันก็จะสับสนด้วย และไม่สามารถใช้กับที่ที่ไม่ได้ตกลงกันไว้ เช่น เราไม่สามารถ เปิด https://google.com:80 ได้ เพราะว่าที่ port 80 google กำหนดให้ใช้งาน protocol http ดังนั้น เมื่อเราทำการเรียก port 80 ด้วย protocol https ก็เกิดอาการคุยกันไม่รู้เรื่อง และทำงานไม่ได้นั่นเองครับ

ใช้ SSL บน port อื่น ที่ไม่ใช่ 443 ได้มั้ย ใช้ http บน port ที่ไม่ใช่ 80 ได้มั้ย

คำตอบคือได้ ด้วยเหตุผลย่อหน้าบน

แล้วใช้ http กับ https บน port เดียวกันได้มั้ย

เช่น เปิด http https บน port 80 ในเวลาเดียวกัน ได้มั้ย แบบนี้ คำตอบคือ ได้ และ ไม่ได้ อธิบาย ในกรณีที่ไม่ได้ก่อน ก็คือโดยปกติแล้ว application ส่วนใหญ่ เค้าจะไม่ยอมให้เปิดทำงานซ้ำซ้อนบน port เดียวกันหากมี application อื่นจองไปก่อนแล้ว เช่น apache กำลังรัน http บน port 80 จากนั้น เปิด skype ที่รัน port 80 ด้วยเช่นกัน แบบนี้ skype รันไม่ได้ เพราะว่า port 80 apache ใช้งานอยู่ก่อนแล้ว ส่วนที่บอกว่าได้นั้น เป็นเพราะว่า ในทางเทคนิคมันสามารถทำได้ครับ แต่ไม่อธิบายเป็นเชิงลึกแล้วกัน มันจะงงไปใหญ่ แต่เปรียบเหมือนกับ คนที่เป็นเจ้าของบ้าน ต้องสามารถพูดได้ทั้งภาษาไทย และ ภาษาอังกฤษ ดังนั้น สิ่งที่เกิดขึ้นก็คือ เมื่อมีทั้งคนไทยและคนอังกฤษ มารุมคุยกับเจ้าของบ้านเยอะๆ สลับไปมา เจ้าของบ้านจะต้องเหนื่อยมากในการสลับสมองไป ไทยบ้าง อังกฤษบ้าง ดังนั้น ทางเทคนิคจึงทำได้ แต่เค้าไม่ทำกันครับ

สำหรับใครที่มีปัญหา หรือข้อสงสัย เรื่องการทำเว็บ หรือส่วนที่เกี่ยวข้อง ก็สามารถสอบถามผ่านทาง http://meewebfree.com/forum ได้เลยนะครับ หรือว่าจะมาเป็นซองคำถามที่ email to me ก็ได้เหมือนกันครับ แต่ถ้า ถามการบ้าน หรือถามหา โค้ด แบบนี้ ผมไม่ตอบนะครับ ผมมักจะสอนให้คุณตกปลา ทำอย่างไรให้ตกปลาเป็น หรือ ตกปลาได้เยอะ เพราะคุณจะได้สามารถไปตกปลาต่อด้วยตัวคุณเองต่อไป โดยไม่ต้องพึ่งผม แต่ถ้าคุณมาถามหาจะเอาปลาจากผม โดยไม่คิดจะตกเอง คุณก็จะต้องคอยถามหาตลอดไป ถ้าวันไดที่ไม่มีคนให้ก็จะอดตายครับ อ้อ หรือว่าด้านล่างนี้ ก็สอบถามมาได้เลยนะครับ ผมก็วนมาตอบเรื่อยๆครับ

Create: Modify : 2013-12-13 00:08:07 Read : 25228 URL :