หลังจากค้างไว้นานมัวไปเขียน HTTP ก่อนหลังจากวันศุกร์ที่คาดว่าจะได้บรรยาย WebDAV แล้วก็ถูกเลื่อนไปวันจันทร์ ไม่เป็นไรวันนี้มาเขียนไว้ก่อนละกัน เตรียมตัวสำหรับวันจันทร์ด้วย
WebDAV หรือ Web Distributed Authoring and Versioning เป็นส่วนขยายของ HTTP เพื่อให้เว็บทั่วไปสามารถแก้ไขและบันทึกได้เลย โดยที่ไม่ต้องไปพึ่งพา Protocol อื่น โปรแกรมที่ใช้กันโดยที่อาจจะไม่รู้ตัวก็คือ Outlook โปรแกรมอ่านเมล์ของไมโครซอร์ฟ โดยใช้ในการดึงเมล์มาจาก hotmail (แต่ปัจจุบันด้วยสาเหตุของความปลอดภัยมั้ง ไมโครซอร์ฟ เลยปิดไป โดยจะยอมเปิดให้ใช้ได้ก็เมื่อจ่ายตัง) หรืออีกโปรแกรมที่คนพัฒนาโปรแกรมต่างๆ น่าจะรู้จักคือ Subversion (หรือไม่รู้จักหว่า) ที่ใช้ WebDAV เป็นฐานเหมือนกันและใช้บางส่วนของ Delta-V ซึ่งเป็นส่วนเสริมของ WebDAV อีกทีในการทำรุ่นเอกสาร
บ่นมายาวแล้วมาดูคำสั่งที่ใช้ส่งไปยังเซิร์ฟเวอร์ดีกว่า โดยรูปแบบของคำสั่งดูได้ตาม code ด้านล่างเลย (ขอโชว์แค่คำสั่งเดียว เพราะใส่ code ใน wordpress ลำบากเหลือเกิน เห้อ)
PROPFIND /collection/resource HTTP/1.1
Host: localhost
Content-Type: text/xml
Content-Length: xxx
Authorization: BASIC cm9vdDpwYXNzd29yZA==
<d:propfind xmlns:d="DAV:">
<d:propstat>
<d:prop>
<d:allprop>
</d:allprop>
</d:prop>
</d:propstat>
จาก code ด้านบนไว้สำหรับดู property ทั้งหมดใน uri ที่กำหนด หากต้องการดูบาง property สามารถใส่เฉพาะ property ที่ต้องการแทน <d:allprop>
- PROPFIND ใช้สำหรับหา Property ต่างๆ ที่เก็บอยู่ใน uri นั้น มาดูรูปแบบการใช้งานกันดีกว่า
- PROPPATCH ใช้สำหรับแก้ไข ลบ เพิ่ม Property ตาม uri ที่กำหนด
- MKCOL ใช้สำหรับสร้าง Collection (เช่น directory ใน file system)
- COPY ใช้สำหรับคัดลอกข้อมูลจาก uri ที่กำหนดไปยังอีก uri นึงโดยที่ไม่ต้องดาวโหลดมาที่เครื่องแล้วอัพขึ้นไปใหม่(ชอบคำสั่งนี้ที่สุดเลย)
- MOVE คล้ายๆ กับ COPY แต่อันนี้ใช้สำหรับย้ายไฟล์ (ชอบพอๆ กับ COPY )
- LOCK ใช้สำหรับป้องกันไม่ให้คนอื่นแก้ไขไฟล์เดียวกับเราขณะที่เราแก้ไขอยู่
- UNLOCK เมื่อเราแก้ไขไฟล์ใดเสร็จแล้วใช้คำสั่งนี้เพื่อยอมให้คนอื่นแก้ไขได้ต่อไป
นอกจากคำสั่งด้านบนแล้วหากต้องการเพิ่มยังมีส่วนขยายอีกสองสามตัวของ WebDAV คือ Delta-V ใช้สำหรับทำรุ่นของเอกสารเมื่อมีการส่งขึ้นมายังเซิร์ฟเวอร์ ถ้านึกไม่ออกก็ Subversion แต่ Subversion ไม่ได้ใช้คำสั่งทั้งหมดถ้าอยากดูรายละเอียดลองไปดูที่เว็บ Subversion นอกจากนี้ยังมีเรื่องโควต้า และส่วนเสริมที่ใช้สำหรับค้นหาข้อมูล นอกจากส่วนเสริมของ WebDAV แล้วยังมี CalDAV และ GroupDAV ที่ใช้สำหรับจัดการข้อมูลเกี่ยวกับปฏิทินและข้อมูลที่ใช้ในกลุ่มเช่นข้อมูลเรื่องที่อยู่ ต่างๆ
พูดถึงตัว WebDAV ไปแล้วมาดูวิธีใช้กันบ้างดีกว่า โดยใน Apache และ IIS ต่างมีส่วนเสริมสำหรับ WebDAV ทั้งคู่เพียงแค่ตั้งค่านิดหน่อยก็สามารถใช้ WebDAV ใด้ทันที แต่สิ่งที่ผมต้องใช้ไม่ไช่ตั้งค่านี่สิ แต้ต้องเขียนขึ้นมา สำหรับจาวาก็มี library ให้ใช้อยู่สองตัวคือ Apache Slide และ Apache Jackrabbit โดยทั้งสองตัวสร้างเพื่อจุดประสงค์ต่างกันโดย Apache Slide สร้างขึ้นมาสำหรับจัดการ WebDAV โดยเฉพาะ ส่วน Apache Jackrabbit ใช้สำหรับพัฒนาระบบ Content Repository (ระบบจัดการและเก็บข้อมูล) โดยทั้งสองตัวไว้จะมากล่างถึงอีกทีในคราวต่อไปละกัน (อาจจะหลังบรรยายวันจันทร์ ) วันนี้ขอแค่นี้ก่อนดีกว่า เพราะดูหนังไปเขียนไปนี่ ความสนใจมันไปอยู่กับหนังหมดเลยแฮะ แหะๆ
Pingback: llun » Java Content Repository