Sự khác biệt chính giữa phương thức GET và POST trong PHP là phương thức GET gửi thông tin bằng cách thêm chúng vào yêu cầu trang trong khi phương thức POST gửi thông tin qua tiêu đề HTTP
PHP là ngôn ngữ kịch bản phía máy chủ được thiết kế để phát triển web. Các phương thức GET và POST là hai cách máy khách gửi thông tin đến máy chủ web. Các phương thức này giúp lấy thông tin từ người dùng theo biểu mẫu
NỘI DUNG
1. Tổng quan và điểm khác biệt chính
2. Phương thức GET trong PHP là gì
3. Phương thức POST trong PHP là gì
4. So sánh song song – Phương thức GET và POST trong PHP ở dạng bảng
5. Tóm tắt
Phương thức GET trong PHP là gì?
Một trang web động có khả năng lưu trữ, cập nhật, truy xuất và xóa dữ liệu khỏi cơ sở dữ liệu. Biểu mẫu là một tài liệu chứa các trường để người dùng điền dữ liệu. Những dữ liệu biểu mẫu này sẽ lưu trữ vào cơ sở dữ liệu
Thông tin biểu mẫu với phương thức GET hiển thị cho mọi người. Nói cách khác, tất cả các tên biến và giá trị được hiển thị trong URL. Ký tự ‘?’ phân tách URL trang và thông tin biểu mẫu. Lượng thông tin gửi bằng GET bị hạn chế. Nó ít hơn 1500 ký tự. Thông thường, không nên sử dụng GET để gửi thông tin nhạy cảm như mật khẩu. Trong một số trường hợp, phương pháp này giúp đánh dấu trang
Phương thức POST trong PHP là gì?
Thông tin biểu mẫu với phương thức POST không hiển thị với mọi người. Nói cách khác, tất cả các tên biến và giá trị được gắn vào phần thân của yêu cầu HTTP. Thông tin biểu mẫu không hiển thị trong URL. Do đó, nó giúp gửi thông tin một cách an toàn. Cũng không có giới hạn cụ thể về lượng dữ liệu gửi. Ngoài ra, phương thức POST cung cấp các tính năng như hỗ trợ đầu vào nhị phân nhiều phần trong khi tải tệp lên máy chủ
Sự khác biệt giữa Phương thức GET và POST trong PHP là gì?
Phương thức GET và POST trong PHP
GET là phương thức gửi thông tin bằng cách thêm chúng vào yêu cầu trang. POST là phương thức truyền thông tin qua tiêu đề HTTP. URL Thông tin biểu mẫu hiển thị trong URLThông tin biểu mẫu không hiển thị trong URL Lượng thông tin Số lượng thông tin được gửi có hạn. Nó ít hơn 1500 ký tự. Không giới hạn số lượng thông tin được gửi. Cách sử dụng Giúp gửi dữ liệu không nhạy cảmGiúp gửi dữ liệu nhạy cảm [mật khẩu], dữ liệu nhị phân [tài liệu từ, hình ảnh] và tệp tải lên Bảo mật Không an toàn lắm. An toàn hơn. Đánh dấu trangCó thể đánh dấu trang Không thể đánh dấu trangTóm tắt – Phương thức GET so với POST trong PHP
Bài viết này đã thảo luận về hai phương pháp xử lý biểu mẫu quan trọng trong PHP. Chúng là các phương thức GET và POST. Nói chung, các nhà phát triển thích phương thức POST để gửi dữ liệu hơn là sử dụng phương thức GET. Sự khác biệt chính giữa phương thức GET và POST trong PHP là phương thức GET gửi thông tin bằng cách thêm chúng vào yêu cầu trang trong khi phương thức POST gửi thông tin qua tiêu đề HTTP
Trong bài viết này, chúng ta sẽ biết các phương thức HTTP GET và POST trong PHP là gì, cách triển khai các phương thức HTTP này và cách sử dụng chúng, bằng cách tìm hiểu chúng thông qua các ví dụ
HTTP. Giao thức truyền tải siêu văn bản [HTTP] được thiết kế để cho phép liên lạc giữa máy khách và máy chủ. HTTP hoạt động như một giao thức phản hồi yêu cầu giữa máy khách và máy chủ. Trình duyệt web có thể là ứng dụng khách và ứng dụng trên máy tính lưu trữ trang web có thể là máy chủ. Máy khách [trình duyệt] gửi yêu cầu HTTP đến máy chủ; . Phản hồi chứa thông tin trạng thái về yêu cầu và cũng có thể chứa nội dung được yêu cầu
Có 2 phương thức yêu cầu HTTP
- LẤY. Yêu cầu dữ liệu từ một tài nguyên cụ thể
- BƯU KIỆN. Gửi dữ liệu được xử lý đến một tài nguyên được chỉ định
Chúng ta sẽ hiểu chi tiết cả hai phương pháp này thông qua các ví dụ
NHẬN phương pháp. Trong phương thức GET, dữ liệu được gửi dưới dạng các tham số URL thường là các chuỗi tên và cặp giá trị được phân tách bằng dấu và [&]. Nói chung, một URL có dữ liệu GET sẽ trông như thế này
Thí dụ. Xem xét ví dụ dưới đây
//www.example.com/action.php?name=Sam&weight=55
Ở đây, phần in đậm trong URL biểu thị các tham số GET và phần in nghiêng biểu thị giá trị của các tham số đó. Có thể nhúng nhiều tham số=giá trị vào URL bằng cách nối với dấu và [&]. Người ta chỉ có thể gửi dữ liệu văn bản đơn giản qua phương thức GET
Thí dụ. Ví dụ này minh họa phương thức HTTP GET trong PHP
HTML
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=621
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=622
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=623____34
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=623____36
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=623____38
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=620
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=621
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=620
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=623
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=620
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=625
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=623
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=627
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=628
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=629
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6210
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6211
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=629
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6213
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6211
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=623______19
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6217
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6218
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6219
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6220
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6221
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6222
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6223
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6224
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6225
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6223
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6227
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6228
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6219
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6230
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6221
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6222
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6223
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6224
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6225
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6223
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6237
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6228
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6239
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=629
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6221
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6222
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6223
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6244
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6228
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=623______347
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6217
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6211
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6247
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6213
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6211
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6247
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6210
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6211
đầu ra
phương thức NHẬN []
Thuận lợi
- Vì dữ liệu được gửi bởi phương thức GET được hiển thị trong URL, nên có thể đánh dấu trang bằng các giá trị chuỗi truy vấn cụ thể
- Các yêu cầu GET có thể được lưu vào bộ đệm và các yêu cầu GET sẽ được lưu lại trong lịch sử trình duyệt
- Yêu cầu GET có thể được đánh dấu
Nhược điểm
- Phương thức GET không phù hợp để truyền thông tin nhạy cảm như tên người dùng và mật khẩu, vì những thông tin này hiển thị đầy đủ trong chuỗi truy vấn URL cũng như có khả năng được lưu trữ trong bộ nhớ của trình duyệt máy khách dưới dạng trang đã truy cập
- Vì phương thức GET gán dữ liệu cho biến môi trường máy chủ nên độ dài của URL bị giới hạn. Vì vậy, có một giới hạn đối với tổng số dữ liệu được gửi
Phương thức POST. Trong phương thức POST, dữ liệu được gửi đến máy chủ dưới dạng gói trong giao tiếp riêng với tập lệnh xử lý. Dữ liệu được gửi qua phương thức POST sẽ không hiển thị trong URL.
Thí dụ. Xem xét ví dụ dưới đây
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=62
Chuỗi truy vấn [tên/trọng lượng] được gửi trong nội dung thông báo HTTP của yêu cầu POST
Thí dụ. Ví dụ này minh họa phương thức HTTP POST trong PHP. Ở đây, chúng tôi đã sử dụng hàm preg_match[] để tìm kiếm chuỗi cho một mẫu, trả về true nếu mẫu tồn tại, nếu không trả về false
HTML
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=621
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=622
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6238
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=624
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6238
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6261
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=620
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=628
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6264
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6265
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6266
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=628
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6239
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6269
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6264____17
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=620____333
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=620
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6235
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=620
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=625
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6266
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=627
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=628
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=629
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6210
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6211
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=629
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6213
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6286
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=623____19
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6217
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6200
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6201
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6220
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6221
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6222
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6223
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6224
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6225
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6223
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6227
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6228
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6201
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6212
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6221
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6222
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6223
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6224
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6225
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6223
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6237
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6228
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6221
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=629
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6221
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6222
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6223
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6244
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6228
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=623______347
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6217
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6211
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6247
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6213
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6211
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6247
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6210
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6211
đầu ra
phương thức POST[]
Thuận lợi
- Nó an toàn hơn GET vì thông tin do người dùng nhập không bao giờ hiển thị trong chuỗi truy vấn URL hoặc trong nhật ký máy chủ
- Có giới hạn lớn hơn nhiều về lượng dữ liệu có thể được chuyển và người ta có thể gửi dữ liệu văn bản cũng như dữ liệu nhị phân [tải tệp lên] bằng POST
Nhược điểm
- Vì dữ liệu được gửi bằng phương thức POST không hiển thị trong URL nên không thể đánh dấu trang bằng một truy vấn cụ thể
- Yêu cầu POST không bao giờ được lưu trữ
- Yêu cầu POST không còn trong lịch sử trình duyệt
Vui lòng tham khảo bài viết Sự khác biệt giữa Phương thức HTTP GET và POST để biết chi tiết về sự khác biệt giữa chúng