Bài giảng Lập trình ứng dụng mạng: Bài 7 - GV. Võ Tấn Dũng
Số trang: 60
Loại file: pdf
Dung lượng: 766.00 KB
Lượt xem: 14
Lượt tải: 0
Xem trước 6 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng Lập trình ứng dụng mạng: Bài 7 Xử lý biến session nhằm trình bày về khái niệm session, HTTP là giao thức phi trạng thái, lưu dữ liệu trong các biến ẩn của form (hidden fields), lưu dữ liệu trong đối tượng session.
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình ứng dụng mạng: Bài 7 - GV. Võ Tấn Dũng TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THÔNG TIN TP.HCM LẬP TRÌNH ỨNG DỤNG MẠNG BÀI 7 XỬ LÝ BIẾN SESSION GV: Võ Tấn Dũng GIẢNG VIÊN: 1 VÕ TẤN DŨNG PHẦN 1 KHÁI NIỆM SESSION GV: Võ Tấn Dũng 2 HTTP là giao thức phi trạng thái Giao thức HTTP là giao thức phi trạng thái (stateless protocol). Khi một lời yêu cầu (request) được tạo ra từ client thì một kết nối (connection) được mở ra, đáp ứng (response) gửi từ server xuống client. Sau đó, kết nối được đóng lại ngay. Nếu một transaction (giao tác) thực hiện một chuỗi liên tiếp các request/response liên tiếp thì hậu quả là Web Server không nhớ được các bước request/response trước đó. Ví dụ, khi ta mua sắm online, ta chọn các mặt hàng xong thì chuyển sang trang tính tiền. Lúc này Web Server không nhớ trước đó ta đã chọn mặt hàng nào. GV: Võ Tấn Dũng 3 Khái niệm session Ta đã nhận rõ một điều rằng trong dịch vụ Web không có kết nối duy trì thường xuyên giữa trình khách (web browser) và trình chủ (web server). Khi trình duyệt cần trình chủ cung cấp một trang tài liệu, trình duyệt mở kết nối, lấy về trang dữ liệu và sau đó đóng kết nối ngay lập tức. Vì vậy Web Server sẽ không biết được trước đó trình duyệt đã có những trạng thái nào. Session tượng trưng một giai đoạn duy trì kết nối giữa trình khách và trình chủ trong quá trình liên lạc. Một loạt các request từ một client sẽ được liên kết với một session. GV: Võ Tấn Dũng 4 Khái niệm session Như vậy, làm thế nào để server nhớ được các giao tác xảy ra trước đó của một client bất kỳ? Ta có thể theo dõi các phiên làm việc (session tracking) của một web client bằng các cách sau: Lưu dữ liệu trong các biến ẩn của form (hidden fields). Lưu dữ liệu trong đối tượng session. Lưu dữ liệu trong bảng băm (hash table) Lưu dữ liệu toàn cục của ứng dụng web trong đối tượng application. GV: Võ Tấn Dũng 5 PHẦN 2 HIDDEN FORM FIELDS GV: Võ Tấn Dũng 6 HIDDEN FORM FELDS Ý tưởng ở đây là mỗi khi người dùng thực hiện thao tác submit một form, form sẽ chứa một số biến ẩn chứa thông tin trạng thái hoặc liên quan đến người dùng đang tương tác với ứng dụng. Trở ngại lớn nhất của phương pháp này là chương trình luôn phải truyền các biến ẩn liên tục giữa các trang có liên hệ với nhau. Ví dụ: ta hãy xem ví dụ ở slide sau đây. Mục đích của ví dụ này là giữ lại thông tin username để các trang khác truy cập. GV: Võ Tấn Dũng 7 Login.html Login Please log in User Name: GV: Võ Tấn Dũng 8 HIDDEN FORM FELDS GV: Võ Tấn Dũng 9 File Login.jsp Welcome, ! Please enter your favorite book: C/C++ Java Linux XML .NET Platform GV: Võ Tấn Dũng 10 File Login.jsp A GV: Võ Tấn Dũng 11 File BookServlet.java import javax.servlet.*; import java.io.*; public class BookServlet extends GenericServlet { public void service(ServletRequest request, ServletResponse response) throws IOException { response.setContentType(text/html); PrintWriter out=response.getWriter(); String userName=request.getParameter(username); String book = request.getParameter(book); out.println(); out.println(); out.println(Well, I see that +userName+'s favorite book is + book +.); out.println(); out.println(); } GV: Võ Tấn Dũng } 12 File BookServlet.java Ví dụ trên cho ta thấy, thông tin hay giá trị của username được nhập vào từ trang Login.html truyền cho trang Login.jsp. Trang Login.jsp lưu giá trị này trong biến ẩn của form và chuyển tiếp cho Servlet. Quá trình cứ thế tiếp diễn cho đến khi nào bạn thôi không còn muốn sử dụng thông tin của username nữa. GV: Võ Tấn Dũng 13 PHẦN 3 SỬ DỤNG HASH TABLE (dùng để bảo mật các biến ẩn của Form) GV: Võ Tấn Dũng 14 SỬ DỤNG HASH TABLE Một trong những lý do mà biến ẩn của Form không được sử dụng nhiều trong các ứng dụng Web thương mại nhất là các site e-commerce đó là tính không bảo mật của giá trị và tên biến. Với ví dụ BookServlet của các slide trước, người dùng có thể đánh lừa BookServlet bằng cách dùng trình duyệt xem code HTML mà BookServlet gửi xuống và dễ dàng nhận thấy có biến ẩn username. Sau đó người dùng có thể truyền trực tiếp giá trị cho username ngay trên đường dẫn: http://localhost:8080/BookServlet?username=abc&book=Java GV: Võ Tấn Dũng 15 SỬ DỤNG HASH TABLE Để giải quyết tính không bảo mật của các biến ẩn trong Form, ta dùng cơ chế bảng băm (Hash Table). Khi việc chứng thực username/password thà ...
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình ứng dụng mạng: Bài 7 - GV. Võ Tấn Dũng TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THÔNG TIN TP.HCM LẬP TRÌNH ỨNG DỤNG MẠNG BÀI 7 XỬ LÝ BIẾN SESSION GV: Võ Tấn Dũng GIẢNG VIÊN: 1 VÕ TẤN DŨNG PHẦN 1 KHÁI NIỆM SESSION GV: Võ Tấn Dũng 2 HTTP là giao thức phi trạng thái Giao thức HTTP là giao thức phi trạng thái (stateless protocol). Khi một lời yêu cầu (request) được tạo ra từ client thì một kết nối (connection) được mở ra, đáp ứng (response) gửi từ server xuống client. Sau đó, kết nối được đóng lại ngay. Nếu một transaction (giao tác) thực hiện một chuỗi liên tiếp các request/response liên tiếp thì hậu quả là Web Server không nhớ được các bước request/response trước đó. Ví dụ, khi ta mua sắm online, ta chọn các mặt hàng xong thì chuyển sang trang tính tiền. Lúc này Web Server không nhớ trước đó ta đã chọn mặt hàng nào. GV: Võ Tấn Dũng 3 Khái niệm session Ta đã nhận rõ một điều rằng trong dịch vụ Web không có kết nối duy trì thường xuyên giữa trình khách (web browser) và trình chủ (web server). Khi trình duyệt cần trình chủ cung cấp một trang tài liệu, trình duyệt mở kết nối, lấy về trang dữ liệu và sau đó đóng kết nối ngay lập tức. Vì vậy Web Server sẽ không biết được trước đó trình duyệt đã có những trạng thái nào. Session tượng trưng một giai đoạn duy trì kết nối giữa trình khách và trình chủ trong quá trình liên lạc. Một loạt các request từ một client sẽ được liên kết với một session. GV: Võ Tấn Dũng 4 Khái niệm session Như vậy, làm thế nào để server nhớ được các giao tác xảy ra trước đó của một client bất kỳ? Ta có thể theo dõi các phiên làm việc (session tracking) của một web client bằng các cách sau: Lưu dữ liệu trong các biến ẩn của form (hidden fields). Lưu dữ liệu trong đối tượng session. Lưu dữ liệu trong bảng băm (hash table) Lưu dữ liệu toàn cục của ứng dụng web trong đối tượng application. GV: Võ Tấn Dũng 5 PHẦN 2 HIDDEN FORM FIELDS GV: Võ Tấn Dũng 6 HIDDEN FORM FELDS Ý tưởng ở đây là mỗi khi người dùng thực hiện thao tác submit một form, form sẽ chứa một số biến ẩn chứa thông tin trạng thái hoặc liên quan đến người dùng đang tương tác với ứng dụng. Trở ngại lớn nhất của phương pháp này là chương trình luôn phải truyền các biến ẩn liên tục giữa các trang có liên hệ với nhau. Ví dụ: ta hãy xem ví dụ ở slide sau đây. Mục đích của ví dụ này là giữ lại thông tin username để các trang khác truy cập. GV: Võ Tấn Dũng 7 Login.html Login Please log in User Name: GV: Võ Tấn Dũng 8 HIDDEN FORM FELDS GV: Võ Tấn Dũng 9 File Login.jsp Welcome, ! Please enter your favorite book: C/C++ Java Linux XML .NET Platform GV: Võ Tấn Dũng 10 File Login.jsp A GV: Võ Tấn Dũng 11 File BookServlet.java import javax.servlet.*; import java.io.*; public class BookServlet extends GenericServlet { public void service(ServletRequest request, ServletResponse response) throws IOException { response.setContentType(text/html); PrintWriter out=response.getWriter(); String userName=request.getParameter(username); String book = request.getParameter(book); out.println(); out.println(); out.println(Well, I see that +userName+'s favorite book is + book +.); out.println(); out.println(); } GV: Võ Tấn Dũng } 12 File BookServlet.java Ví dụ trên cho ta thấy, thông tin hay giá trị của username được nhập vào từ trang Login.html truyền cho trang Login.jsp. Trang Login.jsp lưu giá trị này trong biến ẩn của form và chuyển tiếp cho Servlet. Quá trình cứ thế tiếp diễn cho đến khi nào bạn thôi không còn muốn sử dụng thông tin của username nữa. GV: Võ Tấn Dũng 13 PHẦN 3 SỬ DỤNG HASH TABLE (dùng để bảo mật các biến ẩn của Form) GV: Võ Tấn Dũng 14 SỬ DỤNG HASH TABLE Một trong những lý do mà biến ẩn của Form không được sử dụng nhiều trong các ứng dụng Web thương mại nhất là các site e-commerce đó là tính không bảo mật của giá trị và tên biến. Với ví dụ BookServlet của các slide trước, người dùng có thể đánh lừa BookServlet bằng cách dùng trình duyệt xem code HTML mà BookServlet gửi xuống và dễ dàng nhận thấy có biến ẩn username. Sau đó người dùng có thể truyền trực tiếp giá trị cho username ngay trên đường dẫn: http://localhost:8080/BookServlet?username=abc&book=Java GV: Võ Tấn Dũng 15 SỬ DỤNG HASH TABLE Để giải quyết tính không bảo mật của các biến ẩn trong Form, ta dùng cơ chế bảng băm (Hash Table). Khi việc chứng thực username/password thà ...
Tìm kiếm theo từ khóa liên quan:
Tự học lập trình Lập trình hướng đối tượng Xử lý biến session Lập trình mạng Lập trình ứng dụng mạng Công nghệ mạngTài liệu liên quan:
-
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 277 0 0 -
101 trang 200 1 0
-
Đề cương chi tiết học phần: Mạng máy tính và lập trình mạng
4 trang 160 0 0 -
Bài giảng Công nghệ phần mềm - Chương 2: Quy trình xây dựng phần mềm
36 trang 157 0 0 -
Báo cáo bài tập lớn môn Mạng máy tính và Lập trình mạng: Tìm hiểu về Soap
32 trang 137 0 0 -
14 trang 134 0 0
-
349 trang 123 0 0
-
Giáo trình lập trình hướng đối tượng - Lê Thị Mỹ Hạnh ĐH Đà Nẵng
165 trang 113 0 0 -
Bài giảng Lập trình mạng - Chương 1: Giới thiệu Lập trình mạng
18 trang 108 0 0 -
Giáo trình Lập trình Windows 1 - Trường CĐN Đà Lạt
117 trang 96 0 0