เพราะฉะนั้นปัญหานี้จึงนำไปสู่การพัฒนาโปรแกรมที่เรียกว่า gopher ซึ่งจะจัดกลุ่มของข้อมูลต่าง ๆ ให้อยู่ในรูปที่เป็นหน้าเอกสาร โดยมีลำดับชั้นเหมือนกับโครงสร้างต้นไม้ เพื่อนำคุณไปสู่ไฟล์ บริการของอินเตอร์เน็ต ข้อมูล และสิ่งอื่น ๆ ที่คุณต้องการค้นหาบนอินเตอร์เน็ตได้อย่างสะดวก gopher เป็นซอฟต์แวร์ที่เป็น client ตัวแรกที่ยอมให้ผู้ใช้ติดต่อไปยังโปรโตคอลและเซิร์ฟเวอร์หลาย ๆ แบบบนอินเตอร์เน็ตได้จาก client เพียงตัวเดียว
การที่ gopher ช่วยทำให้การติดต่อค้นหาข้อมูลข่าวสารในหลาย ๆ รูปแบบทำได้ง่าย จึงมีส่วนช่วยเร่งอัตราการเจริญเติบโตของอินเตอร์เน็ตในช่วงต้น ๆ และจากการที่ gopher สามารถสร้างได้ง่ายและมีลักษณะเป็นหน้าเอกสาร จึงเป็นต้นกำเนิดของสื่อในรูปแบบสิ่งพิมพ์บนอินเตอร์เน็ตขึ้น แต่อย่างไรก็ตาม ในปัจจุบันนี้มีการใช้ gopher กันน้อยกว่าในยุคแรก ๆ มาก
มีแหล่งที่ให้บริการ gopher อยู่หลายแห่งบนอินเตอร์เน็ต โดยปกติองค์กรและมหาวิทยลัยต่าง ๆ จะเป็นผู้สร้างระบบ gopher ของตนเองขึ้น บางครั้งก็ใช้ภายในสำหรับพนักงานหรือนักเรียน gopher ส่วนใหญ่ที่พบมักถูกสร้างและดูแลรักษาโดยมหาวิทยาลัยต่าง ๆ โดยจะสร้างให้ง่ายเพื่อให้นักศึกษาเข้าไปใช้บริการต่าง ๆ ของมหาวิทยาลัยและอินเตอร์เน็ตได้และถึงแม้ว่า gopher จะถูกสร้างโดยมหาวิทยาลัยและองค์กรต่าง ๆ ก็ตาม แต่ก็มักจะยอมให้ผู้ใช้ทั่วไปเข้าไปใช้ได้ด้วย
gopher ทำงานในรูปแบบ client/server เช่นเดียวกับ World Wide Web เมื่อคุณรันโปรแกรมส่วนที่เป็น gopher client บนคอมพิวเตอร์ของคุณแล้ว client จะส่งคำร้องขอไปยัง gopher server ซึ่งอยู่ในอินเตอร์เน็ต แล้วเซิร์ฟเวอร์ก็ส่งข้อมูลกลับไปยัง client เพื่อจะแสดงบนจอคอมพิวเตอร์ของคุณ มีโปรแกรม gopher client ให้ใช้กับเครื่องคอมพิวเตอร์ทั้งแบบพีซี แมคอินทอช และ UNIX และในโปรแกรมสำหรับเข้าใช้บริการออนไลน์ทั่ว ๆ ไปก็มักจะสร้าง gopher client มาในตัวด้วย
gopher มีการจัดเมนูในรูปแบบต้นไม้ เมื่อคุณเข้าไปใช้บริการก็จะได้เห็นเมนูแรกที่แสดงการต้อนรับ ซึ่งเรียกว่า root gopher จากนั้นก็เลือกรายการที่คุณสนใจ บางครั้งรายการเหล่านี้จะอยู่ในเมนูย่อย ( sub menu ) ซึ่งคุณสามารถเจาะลงไปจนกระทั่งถึงข้อมูลที่คุณต้องการได้
gopher สามารถลิงค์ไปยังบริการอินเตอร์เน็ตได้หลายแบบ เช่นอาจนำคุณไปสู่ ไฟล์ตัวอักษร ไฟล์ไบนารี การล็อกอินไปยังเครื่องคอมพิวเตอร์ระยะไกล ไฟล์กราฟิก ไฟล์มัลติมีเดีย และการค้นหาฐานข้อมูลด้วย WAIS เป็นต้น แต่สิ่งที่ gopher ช่วยคุณได้มากที่สุดก็คือ ถ้าคุณไม่รู้ว่าจะต้องใช้บริการอินเตอร์เน็ตแบบไหนในการหาข้อมูล gopher จะทำงานเหล่านี้ ไม่ต้องเรียกซอฟต์แวร์ FTP เลย หรือถ้า gopher นำคุณล็อกเข้าไปยังเครื่องคอมพิวเตอร์อื่นที่อยู่ระยะไกล gopher ก็จะทำเรื่องนี้ให้เองโดยไม่ต้องเรียก Telnet ขึ้นมา
gopher ทำงานอย่างไร ?
gopher เป็นบริการอินเตอร์เน็ตที่จัดข้อมูลข่าวสารและไฟล์ต่าง ๆ ให้อยู่ในรูปแบบคล้ายโครงสร้างลำดับชั้นแบบต้นไม้ มีรูปแบบเมนูที่ใช้ง่าย และจะช่วยให้คุณหาข้อมูลได้โดยไม่ต้องรู้แอดเดรส IP หรือชื่อโดเมนของแหล่งข้อมูลนั้น gopher จัดเก็บข้อมูลหลาย ๆ รูปแบบ ทั้งแบบไฟล์ตัวอักษร ไฟล์ไบนารี ไฟล์กราฟิก และไฟล์มัลติมีเดีย นอกจากนี้ gopher ยังสามารถนำคุณไปยังแหล่งบริการอินเตอร์เน็ตในลักษณะต่าง ๆ กัน เช่น gopher ตัวอื่น ๆ บริการฐานข้อมูล WAIS หรือล็อกอินไปยังคอมพิวเตอร์ที่อยู่ระยะไกลโดยใช้ Telnet ซึ่งบางทีข้อมูลที่เราร้องขอไปที่ gopher นั้นไม่ได้อยู่บน gopher เอง แต่จะอยู่ ณ ตำแหน่งที่ gopher ซี้ไปยังที่อื่น ๆ บนอินเตอร์เน็ต
1. gopher จะใช้รูปแบบ client/server โดย gopher client ส่งการร้องขอไปยัง gopher server ซึ่งจะส่งข้อมูลที่ถูกร้องขอกลับมายัง client แล้ว client ก็จะแสดงข้อมูลบนคอมพิวเตอร์ของคุณ คุณสามารถใช้ซอฟต์แวร์ที่เป็น gopher client โดยเฉพาะหรือใช้โปรแกรม Web browser ที่มีฟังก์ชันการทำงานแบบ gopher client รวมอยู่ด้วยก็ได้ โปรแกรมสำหรับเข้าใช้บริการออนไลน์ก็มักจะมี gopher client ได้โดยใช้ Telnet ล็อกอินเข้าไปยังเครื่องคอมพิวเตอร์บางแห่งที่เป็น gopher client สาธารณะบนอินเตอร์เน็ตได้ ทั้งนี้ไม่ว่าคุณจะติดต่อเข้าใช้ gopher ในลักษณะอย่างไรก็ตาม มันก็ทำงานได้เหมือนกัน
2. ตามปกติเมื่อซอฟต์แวร์ client ติดต่อกับ gopher server มันจะส่งข้อมูลที่เรียกว่า selector ไปให้ ซึ่งอาจจะเป็นบรรทัดว่าง ๆ ก็ได้ ในการทำงานของ gopher โดยปกติเมื่อมีการติดต่อกับ gopher server จะเริ่มด้วยการเปิดการติดต่อไปยังเซิร์ฟเวอร์ ตามด้วยการส่งบรรทัดว่าง ๆ ไปหนึ่งครั้งก่อน เพื่อเป็นสัญญาณให้เซิร์ฟเวอร์ส่งเมนูกลับมา
3. เซิร์ฟเวอร์จะส่งข้อมูลหลาย ๆ บรรทัดกลับมายัง client ซึ่งแต่ละบรรทัดจะปิดด้วยรหัส carriage return และ line feed แต่ละบรรทัดจะประกอบด้วยส่วนย่อย ๆ ซึ่งแยกกันด้วยรหัสตัวอักษร tab โดยเริ่มจาก ตัวเลขหนึ่งตัว; ตามด้วยตัวอักษรซึ่งเรียกว่า user display string ซึ่งผู้ใช้ gopher จะเห็นในรูปเมนู; ตามด้วยตัว selector string คือชื่อของเอกสารหรือไดเร็คทอรี ซึ่งจะใช้สำหรับส่งกลับไปที่ gopher server ตามด้วยชื่อโดเมนของโฮสต์ซึ่งมีเอกสารหรือไดเร็คทอรีนั้นอยู่; และปิดท้ายด้วยหมายเลขพอร์ต ซึ่งจะบอก gopher client และ server ว่าจะติดต่อกันอย่างไรผ่านการเชื่อมต่อแบบ TCP/IP
4. gopher client จะแสดงเพียงแค่แถวของตัวอักษรที่เป็น user display string เท่านั้นในแต่ละบรรทัดบนจอภาพ ซึ่งจะเกิดเป็นเมนูของ gopher ให้คุณเห็นขึ้นมา
5. เมื่อคุณเลือกรายการจากเมนูของ gopher ข้อความทั้งหมดในบรรทัด ( ไม่ใช่เฉพาะ user display string ที่แสดงให้คุณเห็น ) ก็จะถูกส่งจาก client ไปยัง gopher server ตัวเลขที่จุดเริ่มต้นของบรรทัดจะบอกเซิร์ฟเวอร์ว่าบริการใดกำลังถูกร้องขออยู่ เลข 0 จะหมายความว่านั่นคือไฟล์; เลข 1 หมายถึงว่ารายการนั้นเป็นไดเร็คทอรี; เลข 5 หรือ 9 หมายความว่ารายการนั้นเป็นไฟล์ไบนารี; เลข 7 หมายถึงจะมีการค้นหาเกิดขึ้น; และเลข 8 จะเป็นการเปิดการล็อกอินระยะไกลด้วย Telnet
6. ด้วยการใช้ข้อมูลที่ส่งมาทั้งหมดนี้ เซิร์ฟเวอร์ก็จะดึงข้อมูลที่ถูกร้องขอโดย client ได้ ถ้าข้อมูลที่ร้องขอเป็นไดเร็คทอรี gopher server จะส่งข้อมูลเป็นบรรทัดหลาย ๆ บรรทัดมาอีก ซึ่งจะนำมาแสดงเป็นเมนูในแบบเดียวกับที่เซิร์ฟเวอร์ถูกร้องขอในตอนแรก
7. ถ้าข้อมูลที่ถูกร้องขอนั้นจะหาได้โดยใช้โปรแกรมค้นหาข้อมูลเซิร์ฟเวอร์ก็จะส่งหน้าจอของการค้นหามาเพื่อให้ระบุคำหรือเงื่อนไขที่จะค้นหาต่อไป
8. ถ้าข้อมูลที่ถูกร้องขอนั้นเป็นไฟล์หรือเอกสาร ไฟล์หรือเอกสารนั้นก็จะถูกส่งกลับมา แต่บางครั้งถ้าข้อมูลที่ถูกร้องขออยู่บนเซิร์ฟเวอร์อื่นที่ไม่ใช่ gopher server ก็จะมีการติดต่อไปยังเซิร์ฟเวอร์อื่นเพื่อขอให้ส่งข้อมูลที่ต้องการกลับมาที่ gopher client ซึ่งตอนนี้ gopher client ก็สามารถอ่านหรือใช้ข้อมูลนั้นได้
2 มีนาคม 2541