ความแตกต่างระหว่าง Redirect กับ Request Dispatcher

การทำงานของ Redirect

  1. Browser ทำการส่ง Request หน้าเว็บที่ต้องการไปยัง Server
  2. เมื่อ Server ทำงานแล้วพบว่า ต้องทำการ Redirect
    ก็จะส่ง URL ปลายทางกลับมาให้ Browser พร้อมกับบอกว่า ให้ไปหาที่ URL นี้แทนนะ
  3. เมื่อ Browser ทราบว่าเป็นการ Redirect ตัว Browser ก็จะเอา URL ใหม่ที่ได้ ทำการส่ง Request ไปยัง Server อีกครั้ง(ตามที่ระบุใน URL)

การทำงานของ Request Dispatcher

  1. Browser ทำการส่ง Request หน้าเว็บที่ต้องการไปยัง Server
  2. เมื่อ Server ทำงานแล้วพบว่า ต้องทำการ Dispatcher
    ตัว Server จะนำเอา URL ที่ต้องการมาทำการส่ง Request เอง
  3. เมื่อ Server ได้รับผลลัพท์จาก URL ปลายทางแล้ว ก็จะส่งผลลัพท์ไปให้ Browser

ข้อแตกต่าง

Redirect

  1. Sequence การทำงานจะเป็น Browser(request) -> Server(response) -> Browser(request) -> Server(response)
  2. URL Address ของ Broser จะเปลี่ยนตามปลายทาง
  3. Parameter ที่ส่งมาครั้งแรกจะหายไป หากไม่อยากให้หายไป ต้องทำการส่งเป็น Query String ใน URL ที่ต้องการ Redirect

Request Dispatcher

  1. Sequence การทำงานจะเป็น Browser(request) -> Server(request) -> Server(response)
  2. URL Address ของ Broser จะไม่เปลี่ยนตามปลายทาง
  3. Parameter ที่ส่งมาครั้งแรกจะไม่หายไป (เนื่องจาก Parameter ยังอยู่ใน request scope)

โดยสรุปคือ
Redirect เป็นการโบ้ยความรับผิดชอบไปให้ Browser ให้ไปหาต่อเอง
Request Dispatcher ฝั่ง Server จะรับหน้าที่ติดต่อปลายทางให้เอง

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s