What is WebDAV?

ได้รับมอบหมายให้มาศึกษา ตัว WebDAV ส่วนตัวเคยได้ยินมาบ้าง แต่ก็ไม่รู้ว่ามันมีจุดประสงค์เพื่ออะไร วันนี้ก็เลยคิดว่าจะมาทำความรู้จักกับมันให้เป็นเรื่อง เป็นราวซ่ะหน่อย

คำถามแรกๆ ก็คือ

What is WebDAV?
WebDAV (Web-based Distributed Authoring and Versioning) คือ Protocol ที่พัฒนาต่อมาจาก HTTP เพื่อให้ user สามารถเข้ามามีส่วนร่วมในการจัดการทรัพยกรต่างๆ บนเครื่อง Server ซึ่งบน Server เองก็ต้อง Support WebDAV ด้วยเช่นกัน ซึ่งในการเข้ามาจัดการทรัพยากรเหล่านั้น User การทำงานทั้งหมดก็จะทำอยู่บน Protocol HTTP นั่นเอง การเข้ามานั้นโดยเจ้าตัว WebDAV นั้นจะยอมให้ user เข้ามาจัดการทรัพยการต่างๆ เช่น ไฟล์บน Server ได้เช่น ยอมให้ Create, Move และ Edit ไฟล์ได้
Feature ที่สำคัญ ของ WebDAV ก็คือ

[ad#ad-post-1]

  1. Locking คือ การป้องกันการเขียนไฟล์ แก้ไขไฟล์ ของ user ในเวลาเดียวกัน
  2. Properties คือ ความสามารถในการ สร้าง, แก้ไข เปลี่ยนแปลง ข้อมูลของเจ้าของไฟล์ หรือ ผู้สร้างไฟล์ และ ข้อมูลอื่นๆ ของผู้สร้างไฟล์ เช่น วันที่สร้างไฟล์, วันที่แก้ไขไฟล์ ฯลฯ
  3. Name space management คือ ความสามารถในการ Copy และ Move เว็บเพจใน Web เดียวกันได้
  4. Collection คือ ความสามารถในการ สร้าง, ลบ, แก้ไข และ แสดงทรัพยากร ภายใน Web ดังกล่าวได้

ส่วนที่เพิ่มเข้ามาใน HTTP คือ

  • PROPFIND — มีหน้าที่ในการนำค่าต่างๆ ที่ถูกกำหนดไว้บนข้อมูลที่อยู่ในรูป XMLมาใช้งาน
  • PROPPATCH — เพื่อใช้ในการเปลี่ยนแปลงค่า หรือ ลบค่า Properties ต่างๆที่อยู่บน ทรัพยากรนั้นๆ เช่น ไฟล์
  • MKCOL — สร้าง Collection
  • COPY — Copy ทรัพยากรจาก URI หนึ่งไปยังอีก URI หนึ่ง
  • MOVE — Move ทรัพยากรจาก URI หนึ่งไปยังอีก URI หนึ่ง
  • LOCK — เพื่อบอกให้ทราบว่า ทรัพยากรดังกล่าวถูกใช้งานอยู่
  • UNLOCK — เพื่อ ทำการ Move Lock ออกจาก ทรัพยากรนั้นๆ

แล้วเค้าเอาไปทำอะไรกันบ้าง

หลังจากที่ทำความรู้จักกันมามากพอสมควร…ตอนนี้ที่เห็นชัดๆ เลยก็คือ เอามาใช้บน Apache เพื่อเอามาช่วยในการจัดการไฟล์ต่างๆ ผ่านทาง HTTP เพราะเมื่อก่อนเวลาเราจะแก้ไขไฟล์อะไรซักอย่างบน Web Server ก็ต้อง FTP ไฟล์เหล่านั้นลงมาก่อน..แก้เสร็จก็ Up ขึ้นไปวางไว้อีกรอบ

นอกจากที่เห็นเพิ่มเติมก็คือ CalDAV ก็คือ Calendar ที่ยอมให้เราจอง แก้ไข ข้อมูลของ Calendar ผ่านทาง HTTP เช่นกัน

site reference :

http://en.wikipedia.org/wiki/WebDAV
http://www.webdav.org/
http://tools.ietf.org/html/rfc2518
http://en.wikipedia.org/wiki/CalDAV