Các trình duyệt web cung cấp bốn cơ chế cơ bản có thể được sử dụng để đặt dữ liệu vào yêu cầu HTTP GET hoặc POST mà trình duyệt gửi tới máy chủ
- liên kết
- nhấp vào liên kết sẽ kích hoạt yêu cầu GET được thực hiện cho máy chủ
- các hình thức
- gửi biểu mẫu có thể kích hoạt yêu cầu GET hoặc POST được gửi tới máy chủ
- jav
- một kỹ thuật Javascript được gọi là AJAX có thể được sử dụng để kích hoạt yêu cầu GET hoặc POST tới máy chủ
- bánh quy
- một máy chủ web có thể yêu cầu trình duyệt web giữ một phần dữ liệu [ví dụ: số ID] sau đó được gửi liên tục trở lại máy chủ với mọi yêu cầu tiếp theo
Chuỗi truy vấn được thiết kế để cho phép dữ liệu được truyền từ máy khách đến máy chủ cùng với bất kỳ yêu cầu nào. Khi khách truy cập nhấp vào một liên kết, trình duyệt sẽ gửi yêu cầu HTTP GET tới máy chủ cho tệp được liên kết
Mã phía máy khách
Liên kết trong HTML sau có một số dữ liệu được nhúng trong chuỗi truy vấn của URL của nó. Dữ liệu đó được gửi đến máy chủ cùng với yêu cầu HTTP cho trang khi người dùng nhấp vào liên kết
Lưu ý rằng đích đến của liên kết trong ví dụ bên dưới là tập lệnh PHP. Nếu liên kết với tập lệnh bằng ngôn ngữ lập trình phía máy chủ khác, chỉ tên của tệp được liên kết đến sẽ thay đổi. Mã phía máy khách sẽ không cần thay đổi
1 2 3 4 Use a Link to send data to a server 5 6 7 Click me to magically send data to the server 8 9
Mã phía máy chủ
ví dụ PHP
Tập lệnh phía máy chủ sau đây sẽ nhận được yêu cầu và có thể truy cập dữ liệu được bao gồm trong chuỗi truy vấn bằng cách sử dụng mảng $_GET tích hợp sẵn của PHP
show_data. php
1
Ví dụ Python
Tập lệnh phía máy chủ sau đây sẽ nhận được yêu cầu và có thể truy cập dữ liệu được bao gồm trong chuỗi truy vấn bằng cách sử dụng đối tượng FieldStorage của mô-đun cgi
show_data. py
1 #!/usr/local/bin/python3 2 3 import cgi 4 5 data = cgi.FieldStorage[] 6 print[data.getfirst['wonderful_data']]
Sử dụng các biểu mẫu
Khi khách truy cập gửi biểu mẫu, trình duyệt sẽ thực hiện yêu cầu HTTP GET hoặc yêu cầu HTTP POST tới máy chủ cho tệp được liên kết. Loại yêu cầu nào được thực hiện tùy thuộc vào giá trị của thuộc tính "phương thức" của thẻ biểu mẫu HTML
Mã phía máy khách
Trang HTML sau đây cho phép người dùng bắt đầu yêu cầu bằng cách nhấp vào nút gửi của biểu mẫu
- Nếu phương thức biểu mẫu đã được đặt thành "NHẬN", thì dữ liệu người dùng nhập vào biểu mẫu sẽ được đặt vào chuỗi truy vấn URL của yêu cầu tiếp theo
- Nếu phương thức biểu mẫu đã được đặt thành "POST", thì dữ liệu sẽ được chuyển đến máy chủ dưới dạng tiêu đề HTTP và sẽ không hiển thị trong chuỗi truy vấn của URL
Lưu ý rằng đích đến của liên kết trong ví dụ bên dưới là tập lệnh PHP. Nếu liên kết với tập lệnh bằng ngôn ngữ lập trình phía máy chủ khác, chỉ tên của tệp được liên kết đến sẽ thay đổi. Mã phía máy khách sẽ không cần thay đổi
1 2 3 4 Use a Form to send data to a server 5 6 7 8 9 Enter some data into this: 10 11 12 13 14
Mã phía máy chủ
ví dụ PHP
Nếu phương thức yêu cầu được đặt là "NHẬN", tập lệnh phía máy chủ sau sẽ nhận được yêu cầu đó và có thể truy cập dữ liệu chuỗi truy vấn trong mảng $_GET tích hợp sẵn của PHP
show_data. php
1
Nếu phương thức yêu cầu là "POST", hãy sử dụng mảng $_POST có sẵn của PHP để truy cập dữ liệu
show_data. php
1
Ví dụ Python
Tập lệnh phía máy chủ sau đây sẽ nhận được yêu cầu và có thể truy cập dữ liệu được bao gồm trong chuỗi truy vấn bằng cách sử dụng đối tượng FieldStorage của mô-đun cgi
show_data. py
1 #!/usr/local/bin/python3 2 3 import cgi 4 5 data = cgi.FieldStorage[] 6 print[data.getfirst['wonderful_data']]
Sử dụng Javascript
AJAX là một thuật ngữ ưa thích cho kỹ thuật mà trình duyệt web gửi yêu cầu HTTP GET hoặc HTTP POST tới máy chủ thông qua Javascript. Mã phía máy chủ sẽ không khác với các ví dụ trên
Kỹ thuật này hữu ích khi bạn không muốn trình duyệt từ bỏ trang hiện tại và tải một trang hoàn toàn mới trong trình duyệt. Trang có thể được duy trì trong khi yêu cầu đến máy chủ được thực hiện ở chế độ nền
Sử dụng cookie
Cookie là các tiêu đề yêu cầu HTTP tùy chỉnh mà máy khách gửi đến máy chủ và ngược lại. Chúng được sử dụng để "bí mật" chuyển tin nhắn qua lại giữa trình duyệt web và máy chủ web
Cú pháp JSON giống như cú pháp đối tượng của JavaScript, ngoại trừ việc nó không thể được gán cho một biến. JSON chỉ đại diện cho chính dữ liệu. Vì JSON chỉ là một chuỗi văn bản nên nó cần được chuyển đổi thành một đối tượng để hữu ích trong JavaScript. Tương tự như vậy, các đối tượng JavaScript cần được chuyển đổi thành chuỗi để được sử dụng làm dữ liệu JSON