khung|Query String trong URL khi người dùng truy cập vào trang chính của en.wikipedia.org
Trên mạng lưới World Wide Web, một chuỗi truy vấn () là một phần của một URL chứa dữ liệu không phù hợp trong cấu trúc đường dẫn. Query string thường gồm những trường được thêm vào một URL bởi một trình duyệt web hoặc bởi một ứng dụng client khác (ở đây nói đến mô hình client-server với web browser là một client), ví dụ như là một form HTML.
Một web server có thể xử lý một yêu cầu HTTP (HTTP request) bằng cách đọc một file từ hệ thống file của server dựa trên URL hoặc bằng cách xử lý các yêu cầu dựa trên logic đối với các tài nguyên cụ thể. Trong trường hợp các logic đặc biệt được sử dụng, query string sẽ được sử dụng cho quá trình xử lí logic đó, cùng với thành phần đường dẫn của URL.
Cấu trúc
Một URL điển hình chứa một query string sẽ có dạng như sau:Khi một máy chủ nhận một yêu cầu một trang như vậy, nó có thể trả về trang người dùng yêu cầu, và bỏ qua các query string mà trong trường hợp này là, name=ferret. Dấu hỏi trong cấu trúc trên được dùng để phân chia các thành phần scheme, host, port (nếu có) và path với query string và không phải là thành phần của query string.
Các web frameworks có thể cung cấp các phương pháp để xử lí cú pháp (parse) nhiều thông số trong các query string, khi chúng được tách ra trong các URL bởi các dấu phân cách. Trong URL ví dụ dưới đây, các query string được tách ra bởi kí hiệu '&':Ở ví dụ này, có thể thấy rằng có 2 query string trong URL, đó là name=ferret và color=purple.
Các query string không có cấu trúc tiêu chuẩn. Các phương pháp được sử dụng để phân tích cú pháp các query string có thể khác nhau, tùy thuộc vào các nhà phát triển của website đó.
Một liên kết trong một trang web có thể có một URL mà có một query string. HTML xác định ba cách mà một người có thể tạo ra những query string:
Một HTML form thông qua các thẻ
Một ánh xạ từ phía server thông qua là một thuộc tính của thẻ với cấu trúc
Một thẻ tìm kiếm giờ đây đã bị bác bỏ là
Web forms
Khi một web form chứa các trường field1, field2, field3 được gọi, các nội dung của các trường đó sẽ được mã hóa thành một query string như sau:
Các query string bao gồm một loạt các cặp trường giá trị.
Trong mỗi cặp, tên trường và giá trị được tách ra bởi một dấu bằng, '='.
Một loạt các cặp được cách nhau bằng kí hiệu '&' (hoặc dấu chấm phẩy, ';' cho đường dẫn được nhúng trong HTML và không được tạo ra bởi một cặp thẻ ).
Dù các query string không có cấu trúc tiêu chuẩn, các web frameworks cho phép nhiều giá trị được kết hợp trong một trường (ví dụ như field1=value1và field1=value2và field2=value3).
Với mỗi trường của một form, query string có một cặp field=value. Các web form có thể bao gồm những trường mà người dùng không thể nhìn thấy, các trường này được lồng trong các query string khi các form được gởi (submit).
W3C khuyến cáo tất cả các web server hỗ trợ dùng dấu chấm phẩy bên cạnh dấu "&" để cho phép các application/x-en-form-urlencoded query string trong URL trong tài liệu HTML mà không cần phải phân cách dấu "&".
Các nội dung form chỉ được mã hóa trong các URL's query string trong phương thức đệ trình của form là GET. Phương pháp mã hóa tương tự được dùng mặc định khi phương thức đệ trình là POST, nhưng kết quả được server hiểu như là một yêu cầu HTTP (HTTP request) chứ không phải là một URL bị thay đổi.
Query string trong công cụ tìm kiếm
Lấy ví dụ với công cụ tìm kiếm Google và trình duyệt Google Chrome. Khi người dùng truy xuất vào thanh tìm kiếm của trình duyệt và gõ nội dung tìm kiếm vào đó, nội dung tìm kiếm sẽ được gởi đến server ở dạng query string cùng với phương thức GET và thêm nào nhiều quy trình mã hóa khác, tất cả tạo nên URL mà người dùng có thề nhìn thấy trên thanh tìm kiếm. Do đó việc này sẽ rất tiện lợi khi người dùng chỉ cần nhập vào công cụ tìm kiếm nội dung cần tìm thì có thể sẽ nhận được nội dung yêu cầu.
Khi đoạn văn bản trên thanh tìm kiếm được gởi đi (người dùng nhấn Enter), nó sẽ được mã hóa thành một query string có dạng như sau:
Các query string bao gồm một loạt các đối số được xử lí cú pháp với các khoảng trắng được thay bằng dấu cộng '+'.
Mã hóa URL
Một số ký tự không thể là thành phần của một URL (ví dụ như khoảng trắng) và một số ký tự khác có một ý nghĩa đặc biệt trong một URL: ví dụ, ký tự # có thể được dùng để tiếp tục xác định một phần phụ (hoặc mảnh) của một tài liệu. Trong form HTML, ký tự = được sử dụng để tách một tên từ một giá trị. Cú pháp URI chung sử dụng mã hóa URL để giải quyết với vấn đề này, trong khi các HTML form tạo thêm các giải pháp thay thế chứ thay vì áp dụng việc mã hóa bằng ký tự "%" cho tất cả các ký tự. Ký tự khoảng trắng được mã hóa bằng '+' hoặc "%20".
HTML 5 xác định những thay đổi sau khi một form HTML được gởi tới trình lên server bằng giao thức GET:
Một ký tự nếu không có ký tự mã hóa tương ứng thì sẽ được thay thế bởi danh sách Tham chiếu ký tự số tương ứng của HTML
Khoảng trắng được mã hóa bằng kí tự '+' hoặc '%20'
Các kí tự (A–Z và a–z), số (0–9) và các ký tự '*','-','.' và '_' đều được giữ nguyên, không mã hóa
Tất cả các ký tự khác được mã hóa bằng %HH hex đại diện với bất kỳ ký tự không phải ASCII nào khác đều được mã hóa bằng UTF-8 (hoặc các mã hóa quy định khác)
Ví dụ
Nếu một form được nhúng trong một trang HTML như sau:
và người dùng chèn vào chuỗi "this is a field" và " was it clear (already)?" trong cả hai thuộc tính first và second và nhấn nút gửi, chương trình test.cgi sẽ có query string như sau
Nếu các form được xử lý trên server bởi một CGI script, các script có thể sẽ thường nhận query string như là một biến môi trường tên là QUERY_STRING.
Theo dõi
Một chương trình nhận được một query string có thể bỏ qua một phần hoặc tất cả. Nếu các URL yêu cầu tương ứng với một tập tin và không phải là một chương trình, cả query string sẽ bị bỏ qua. Tuy nhiên, dù các query string có được sử dụng hay không, toàn bộ URL có query string đều được lưu trữ trong các log files của server.
Việc lưu lại này cho phép theo dõi người dùng, tương tự như cách cung cấp HTTP cookies. Để làm việc này, mỗi khi người dùng tải một trang, một địa chỉ duy nhất phải được chọn và thêm vào tất cả URL của trang như một query string. Ngay sau khi các người dùng dử dụng các đường dẫn này, những URL tương ứng được sẽ được gởi yêu cầu tới server. Với cách này, việc tải một trang sẽ liên kết với trang trước đó.
Ví dụ, khi một trang web có đoạn chương trình HTML sau được yêu cầu:WikipediaQuery Stringmột chuỗi duy nhất, như e0a72cb2a2c7 được chọn, và đoạn mã HTML sẽ bị thay đổi như sau:WikipediaQuery StringVIệc thêm vào query string không thay đổi cách mà trang web hiển thị với người dùng. Ví dụ, khi người dùng truy cập vào liên kết đầu tiên trong trang HTML ở trên, trình duyệt yêu cầu trang foo.html?e0a72cb2a2c7 tới server, và server sẽ bỏ qua những gì sau dấu ? và trả về cho browser trang foo.html như mong đợi, và thêm vào các query string đến liên kết của nó.
Sự khác biệt giữa query string dùng cho việc theo dõi người dùng với HTTP cookies là:
Query string là một phần của URL, và do đó nếu người dùng copy cả URL và gởi cho người dùng khác thì người dùng khác sẽ nhận được URL gồm query string; cookie có thể được lưu trên trình duyệt, nhưng không được lưu hoặc gửi kèm theo URL.
Nếu người dùng truy cập vào cùng một web server bởi 2 đường dẫn riêng biệt (hoặc nhiều hơn), thì server sẽ trả về 2 query string khác nhau, trong khi các cookie lưu trữ đều giống nhau.
Người dùng có thể vô hiệu hóa cookie, trong trường hợp đó, cookies sẽ không thể dùng để theo dõi người dùng được. Tuy nhiên, query string có thể sử dụng để theo dõi người dùng trong mọi tình huống.
Vấn đề tương thích
Theo đặc tính kĩ thuật của HTTP:
Trên thực tế, có nhiều giới hạn đặc biệt khác nhau về độ dài của một HTTP request. Khuyến cáo rằng tất cả phía gởi và phía nhận HTTP request đều hỗ trợ độ dài request tối thiểu là 8000 octet.
Nếu một URL quá dài, phía web server sẽ bị lỗi với HTTP status code 414 Request-URI Too Long. Một phương pháp phổ biến để giải quyết vấn đề này là sữ dụng POST request thay vì GET request, và lưu các giá trị trong phần request body. Kích thước giới hạn của request body sẽ lớn hơn kích thước độ dài của URL, theo tiêu chuẩn. Ví dụ, kích thước của một POST request, mặc định là 2 MB trên IIS 4.0 và 128 KB trên IIS 5.0. Giới hạn này có thể cấu hình được trên Apache2 sử dụng LimitRequestBody directive, việc cấu hình này quy định được kích thước của request body (số byte) từ 0 đến 2147483647 (2 GB).
khung|Query String trong URL khi người dùng truy cập vào trang chính của en.wikipedia.org Trên mạng lưới World Wide Web, một **chuỗi truy vấn** () là một phần của một URL chứa dữ liệu không
Khái niệm **chuỗi giá trị nông nghiệp** (tiếng Anh: _agricultural value chain_) được sử dụng từ khi bắt đầu thiên niên kỷ mới, chủ yếu bởi những người làm trong lĩnh vực phát triển nông
**Truy hồi thông tin** (hay còn gọi là _truy vấn thông tin_, _truy xuất thông tin_) là hoạt động thu thập các nguồn thông tin liên quan đến một thông tin cần tìm kiếm trong
**Tài chính chuỗi cung ứng toàn cầu** đề cập đến tập hợp các giải pháp có sẵn để tài trợ cho hàng hóa và/hoặc sản phẩm cụ thể khi chúng di chuyển từ điểm xuất
**Thặng dư chuỗi cung ứng** là sự bổ sung giá trị theo chức năng chuỗi cung ứng của một tổ chức. Nó được tính theo công thức sau: : Thặng dư chuỗi cung ứng =
**Chuỗi cung ứng tiếp thị** là chuỗi các nhà cung cấp mà một tổ chức dựa vào để sản xuất các tài liệu tiếp thị (in, sản phẩm quảng cáo và điểm bán hàng) để
Trong phân phối và hậu cần của nhiều loại sản phẩm, **theo dõi và truy tìm**, liên quan đến quá trình xác định vị trí hiện tại và quá khứ (và thông tin khác) của
Trong mật mã hóa khóa công khai**, vân tay khóa công khai** là một chuỗi byte ngắn được sử dụng để xác định khóa công khai dài hơn. Dấu vân tay được tạo bằng cách
**Máy truy tìm dữ liệu trực tuyến** hay **máy tìm kiếm** hay **cỗ máy tìm kiếm** (tiếng Anh: _search engine_), hay còn được gọi với nghĩa rộng hơn là **công cụ tìm kiếm** (_search tool_),
Chuỗi cung ứng thực chất là một mạng lưới cung ứng nhu cầu năng động và phức tạp **Chuỗi cung ứng** (_Supply chain_) là một hệ thống các tổ chức, con người, hoạt động, thông
**Chuối tá quạ**, hay còn gọi là **chuối táo quạ**, là một giống chuối trồng nông nghiệp thuộc chi Chuối, họ Chuối. Đây là trái cây đặc sản của tỉnh Trà Vinh. Giống chuối này
Ban nhạc rock người Anh The Beatles thường được coi là ban nhạc quan trọng và có ảnh hưởng nhất trong lịch sử âm nhạc đại chúng. Với đội hình bao gồm John Lennon, Paul
nhỏ|Thiết kế bên ngoài sân vận động GSP hiện đại **Sân vận động Câu lạc bộ thể dục "The Pancyprians" (Sân vận động GSP)** () là một sân vận động bóng đá ở Strovolos, huyện
nhỏ| Quán Stonewall Inn trong [[Khu đồng tính|ngôi làng đồng tính thuộc Greenwich Village, Manhattan, trụ sở của các cuộc nổi dậy Stonewall năm 1969, được trang trí bằng những lá cờ cầu vồng tự
Tranh tường [[Ai Cập cổ đại về việc cày cấy và bắt chim, khoảng 2700 năm trước Công nguyên, hiện lưu giữ ở bảo tàng Ai Cập, Cairo, Ai Cập.]] **Văn hóa** (chữ Hán: 文化,
thumb|Người dân Triều Tiên viếng tượng [[Kim Nhật Thành (trái) và Kim Jong-il ở Đài tưởng niệm Mansu Hill Grand, Bình Nhưỡng.]] nhỏ|phải|Khải Hoàn môn Bình Nhưỡng **Văn hóa Bắc Triều Tiên** chỉ về nền
:_Bài này viết về BLAST (viết hoa), một chương trình dùng trong tin sinh học. Về các nghĩa khác, xem tại blast (định hướng)_ Trong tin sinh học, **B**asic **L**ocal **A**lignment **S**earch **T**ool, hay **BLAST**,
**Phần mềm xử lý bảng tính** hay **Bảng tính** (tiếng Anh**: Spreadsheet**) là một phần mềm ứng dụng dùng để tổ chức, phân tích và lưu trữ dữ liệu thông qua các bảng tính (gọi
Lỗi **HTTP 404**, **404 Not Found**, **404**, **404 Error**, **Page Not Found** hay **File Not Found** là một mã phản hồi chuẩn của HTTP chỉ ra rằng trình duyệt web có thể kết nối với
Để đảm bảo thực phẩm đến tay người tiêu dùng luôn an toàn, chúng tôi đặt ra các tiêu chí nghiêm ngặt trong toàn bộ quy trình sản xuất và phân phối. - Đầu tiên,
**Truy xuất nguồn gốc sản phẩm** (_Produce traceability_) là khả năng theo dõi, nhận diện được một đơn vị sản phẩm qua từng công đoạn của quá trình sản xuất, chế biến, phân phối. Điều
**Google LLC** () là một công ty công nghệ đa quốc gia của Mỹ, chuyên về các dịch vụ và sản phẩm liên quan đến Internet, bao gồm các công nghệ quảng cáo trực tuyến,
nhỏ|Search Engine Results Pages - SERP **Trang kết quả của công cụ tìm kiếm** (**Search Engine Results Pages -** **SERP**) là các trang được hiển thị bởi các công cụ tìm kiếm để đáp lại
Chuỗi cung ứng truyền thống vẫn đang gặp phải với nhiều vấn đề như gian lận, thiếu minh bạch và chi phí trung gian cao. Công nghệ Blockchain xuất hiện như một giải pháp đột
Chuỗi cung ứng ngành thép bao gồm nhiều mắt xích: từ khai thác nguyên liệu, vận chuyển, sản xuất, lưu kho đến phân phối. Mỗi giai đoạn đều tiềm ẩn nhiều rủi ro, điển hình
thumb|Cụm từ _Cộng hòa chuối_ được tạo ra ([[circa|khoảng 1904) bởi nhà văn Mỹ O. Henry (William Sydney Porter, 1862–1910).]] **Cộng hòa chuối** (tiếng Anh: _banana republic_) là một thuật ngữ khoa học chính trị
**Lê Thanh Vân** (5 tháng 12 năm 1956 – 26 tháng 10 năm 2005), nổi tiếng với biệt danh **phù thủy xyanua**, **sát thủ xyanua**, **sát thủ độc dược**, là một kẻ giết người hàng
Chuỗi cung ứng truyền thống vẫn đang gặp phải với nhiều vấn đề như gian lận, thiếu minh bạch và chi phí trung gian cao. Công nghệ Blockchain xuất hiện như một giải pháp đột
Người Truy Án ------------ Một thanh tra trẻ đầy khát vọng tìm ra hung thủ trong bản án thảm sát năm xưa. Một tên tội phạm IQ cao, kẻ từng là luật sư tài ba
Trong lĩnh vực máy tính, **bộ nhớ** **truy cập tuần tự** (**SAM**) là một lớp các thiết bị lưu trữ dữ liệu dùng để đọc dữ liệu được lưu trữ theo một chuỗi. Điều này
**Rewrite URL** (đôi khi gọi là **short URL**, **URL rewriting**, hay **fancy URL**) là một kỹ thuật cho phép ghi lại địa chỉ website (URL) từ dạng này thành một dạng khác (**URL rewriting**). Rewrite
**USS _Van Valkenburgh_ (DD-656)** là một tàu khu trục lớp _Fletcher_ được Hải quân Hoa Kỳ chế tạo trong Chiến tranh Thế giới thứ hai. Nó là chiếc tàu chiến duy nhất của Hải quân
nhỏ|phải|Những mô hình khủng long đầu tiên là [[Iguanodon và Mantellodon được đặt ở Crystal Palace, Luân Đôn vốn có từ thời Victoria, là những hình tượng sớm nhất về khủng long]] nhỏ|phải|Tượng khủng long
**_Kẻ hủy diệt: Vận mệnh đen tối_** (tên tiếng Anh: **_Terminator: Dark Fate_**) là phim điện ảnh hành động khoa học viễn tưởng của Mỹ năm 2019 do Tim Miller đạo diễn với phần kịch
Đại đa số doanh nghiệp chưa chuyển đổi số, hay nói đúng hơn là các doanh nghiệp vẫn còn đang vận hành theo mô hình truyền thống. Đều đang bị mắc kẹt giữa tư duy
Đại đa số doanh nghiệp chưa chuyển đổi số, hay nói đúng hơn là các doanh nghiệp vẫn còn đang vận hành theo mô hình truyền thống. Đều đang bị mắc kẹt giữa tư duy
**Trần Văn Thuyết** (sinh năm 1960), có biệt danh là **Thuyết buôn vua**, **Thuyết chăn voi** từ Vụ án Năm Cam và đồng phạm. Được biết đến như một doanh nhân giàu có bậc nhất
**_Chuỗi án mạng A.B.C_** (tiếng Anh: The ABC Murders) là một tác phẩm truyện hư cấu trinh thám của nhà văn Anh Agatha Christie, với các nhân vật Hercule Poirot, Arthur Hastings và Chief Inspector
**Vim** (; viết tắt của **Vi IMproved**) là một trình soạn thảo văn bản miễn phí và mã nguồn mở. Đó là một bản sao cải tiến của vi của Bill Joy cho Unix. Nó
**MEDLINE** (hay **Medline**, viết tắt tiếng Anh của _Medical Literature Analysis and Retrieval System Online_) là một cơ sở dữ liệu hỗn hợp của các ngành khoa học sự sống và y sinh học. Các
thế=Taylor Swift in a gold dress|nhỏ| Vô số các ấn phẩm và nguồn sách học giả đã xem [[Taylor Swift là nghệ sĩ âm nhạc có tầm văn hóa quan trọng nhất ở thế kỷ
Ngành giao thông vận tải đánh giá cao việc tiêu chuẩn hóa quy trình và cải thiện tính bảo mật, điều mà blockchain có khả năng mang lại. Với sức mạnh của internet và quá
Trong bối cảnh chuyển đổi số đang diễn ra mạnh mẽ, các doanh nghiệp phân phối và kinh doanh hiện nay đang đứng trước bài toán vừa nâng cao hiệu quả vận hành, vừa mở
**Kỹ thuật tạo lệnh** hoặc **kỹ thuật ra lệnh** (prompt engineering) là quá trình cấu trúc một **văn bản đầu vào** cho AI tạo sinh giải thích và diễn giải. Một **văn bản đầu vào**
Trong khoa học máy tính, **tìm kiếm nhị phân** (), còn gọi là **tìm kiếm nửa khoảng** (_half-interval search_), **tìm kiếm logarit** (_logarithmic search_), hay **chặt nhị phân** (_binary chop_), là một thuật toán tìm
**SQL injection** là một kỹ thuật cho phép những kẻ tấn công lợi dụng lỗ hổng của việc kiểm tra dữ liệu đầu vào trong các ứng dụng web và các thông báo lỗi của
**Redis** (/ˈrɛdɪs/; từ viết tắt của **Remote Dictionary Server**) là một cơ sở dữ liệu phân tán trong bộ nhớ, được sử dụng như một cơ sở dữ liệu đệm lưu dữ liệu dạng cặp