Life, SAP, Consulting, Programming, Coding, ASP.NET, Sharepoint, MVC, Javascript, PHP, WebDesign, CSS, HTML

Posts tagged ‘html’

Phương thức GET và POST

Get và Post là các cách thức để gửi dữ liệu lên server. Cả hai cách thức đều được sử dụng để thao tác với dữ liệu trong form nhưng chúng lại có cách hoạt động khác nhau. Chúng ta phải hiểu rõ khi nào cần sử dụng Get và khi nào cần Post.

Sự khác nhau giữa Get và Post

GET

POST

  • Được sử dụng khi dùng URL để gửi yêu cầu lên server. Có thể không cần Form
  • Lấy thông tin từ một trang web (Web page) trong hầu hết các trình duyệt (browser)
  • Được dùng để gửi dữ liệu trong các form đến một trang nào đó. Dữ liệu gửi đi là một phần trong URL với dạng “&name=value” (ví dụ : http://www.google.com.vn/search?q=html)
  • Dữ liệu trong form phải là ASCII code.
  • Dữ liệu gửi đi là hạn chế vì phụ thuộc vào trình duyệt hỗ trợ tối đa URL có độ dài bao nhiêu.
  • Có thể thêm dữ liệu gửi đi trực tiếp vào URL
  • Không hỗ kiểu thuộc tính ẩn (type=”hidden”), giá trị được lưu trữ vào History trên Address bar
  • Bảo mật kém.
  • Bắt buộc phải có Form. Vì thế không thể gửi một yêu cầu Post từ lần truy cập đầu tiên vào trang web.
  • Dữ liệu gửi đi không hiển thị.
  • Form gửi đi có cấu trúc, dữ liệu cần xử lý nằm trong message body.
  • Bảo mật hơn Get
  • Dữ liệu gửi đi lớn. Các kiểu File, Ảnh, Binary đều có thể gửi đi được, dung lượng của chúng phụ thuộc vào cấu hình của server.
  • Dữ liệu được gửi đi như trong form của nó
  • With the Post method, the data is sent as standard input.
  • Không có giá trị mặc định, nên đặt giá trị rõ ràng cho từng field gửi đi.

Trong các trình duyệt cũ, số lượng ký tự trong URL bị hạn chế là 255 kí tự. Tuy nhiên, hầu hết các trình duyệt mới đều hỗ trợ nhiều hơn thế(xem thêm) Tuy nhiên chúng ta khôn biết được người truy cập sử dụng trình duyệt nào và chưa kể đến các trình duyệt trên mobile. Với phương thức Post. Không có hạn chế dữ liệu nào cả, miễn là được server hỗ trợ. Dữ liệu được gửi đi sẽ hiển thị trên url, hiển nhiên chúng ta sẽ không thể đăng nhập bằng Username và Password form với phương thức Get, Password sẽ hiện sờ sờ trên URL. Vậy ưu điểm của Get là gì? Bạn có thể bookmark một trang có query get, gửi url đó cho bạn bè, tuy nhiên post thì không.

Khi gửi dữ liệu bằng phương thức Get, cần chú ý một số ký tự đặc biệt như &, space… Nếu không mã hóa và giải mãcác ký tự này đúng chuẩn html thì có thể gây lỗi cho dữ liệu gửi và nhận.


Trong ASP.NET, Form sử dụng phương thức mặc định là POST. Nó cũng có thể được chuyển sang GET, tuy nhiên, sẽ bị mất đi vài dữ liệu, đặc biệt là khi Viewstate được sử dụng