Hướng dẫn what is query string in python? - chuỗi truy vấn trong python là gì?

Chuỗi truy vấn là gì? Làm thế nào để tôi sử dụng chúng? Trong bài học này, bạn sẽ học chính xác điều đó. Hàm .get() chấp nhận đối số params, có thể là một từ điển, một danh sách các bộ dữ liệu hoặc byte thô. Ví dụ sau sử dụng API tìm kiếm GitHub đang tìm kiếm thư viện requests:

>>> requests.get(
...     'https://api.github.com/search/repositories',
...     params={'q': 'requests+language:python'}
... )
<Response [200]>

00:00 Này, Chào mừng bạn đến với Phần 2. Chúng tôi sẽ bắt đầu tiếp theo với việc nói về các tham số chuỗi truy vấn, sau đó chúng tôi sẽ tiếp tục yêu cầu các tiêu đề, các phương thức HTTP khác, thân thông báo và sau đó kiểm tra yêu cầu của bạn. Vì vậy, các tham số chuỗi truy vấn là gì? Chà, họ là một phần của URL gán các giá trị để chỉ định các tham số. Hey, welcome to Section 2. We’re going to get started next with talking about query string parameters, then we’ll continue on to request headers, other HTTP methods, the message body, and then inspecting your request. So, what are query string parameters? Well, they’re the part of the URL which assigns values to specify parameters.

00:19 Họ thường được thêm vào cơ sở của URL, giống như trong ví dụ này, nơi chúng tôi đang tìm kiếm kho lưu trữ. Nó bắt đầu với dấu hỏi (?), và sau đó bạn có thể thấy một truy vấn được thêm vào. They’re commonly added to the base of the URL, like in this example where we’re searching repositories. It starts with the question mark (?), and then you can see a query added.

00:29 Các ví dụ khác nếu bạn nhớ chúng tôi quay lại .content từ API REST gốc, đây là một số cặp đó. Một là commit_search_url, và ở đây bạn có thể thấy nó nói về việc tìm kiếm trong các cam kết. Other examples—if you remember us returning back our .content from the Root Rest API, here are some of those pairs. One was commit_search_url, and here you can see it talking about searching within the commits.

00:41 Một người khác sẽ là tìm kiếm người dùng và

<form action="/cgi-bin/test.cgi" method="get">
  <input type="text" name="first" />
  <input type="text" name="second" />
  <input type="submit" />
form>
0 bắt đầu với các tham số của nó ở đây, ngay sau
<form action="/cgi-bin/test.cgi" method="get">
  <input type="text" name="first" />
  <input type="text" name="second" />
  <input type="submit" />
form>
1. Các tham số chuỗi truy vấn có thể bao gồm một loạt các đối số.
Another would be to search for users, and the
<form action="/cgi-bin/test.cgi" method="get">
  <input type="text" name="first" />
  <input type="text" name="second" />
  <input type="submit" />
form>
0 starts with its parameters here, just after
<form action="/cgi-bin/test.cgi" method="get">
  <input type="text" name="first" />
  <input type="text" name="second" />
  <input type="submit" />
form>
1. Query string parameters can be composed of a series of arguments.

00:53 Sê -ri được phân tách bằng dấu cộng (

<form action="/cgi-bin/test.cgi" method="get">
  <input type="text" name="first" />
  <input type="text" name="second" />
  <input type="submit" />
form>
2). Vì vậy, hãy để thử nó. Quay trở lại trình soạn thảo của chúng tôi ở đây, chúng tôi sẽ tạo một tệp mới. Tôi chỉ đơn giản là gọi nó là
<form action="/cgi-bin/test.cgi" method="get">
  <input type="text" name="first" />
  <input type="text" name="second" />
  <input type="submit" />
form>
3.
The series is separated by a plus sign (
<form action="/cgi-bin/test.cgi" method="get">
  <input type="text" name="first" />
  <input type="text" name="second" />
  <input type="submit" />
form>
2). So, let’s try it out. Back in our editor here, we’re going to create a new file. I’m simply going to call it
<form action="/cgi-bin/test.cgi" method="get">
  <input type="text" name="first" />
  <input type="text" name="second" />
  <input type="submit" />
form>
3.

01:09 Vì vậy, chúng tôi sẽ chuyển một chuỗi truy vấn vào API tìm kiếm GitHub tại đây. Vì vậy, hãy để bắt đầu bằng cách nhập requests. Cho mình một số phòng. So, we’re going to pass a query string into GitHub’s Search API here. So, let’s start by importing requests. Give myself some room.

01:24 Được rồi. Chúng tôi sẽ thực hiện một biến

<form action="/cgi-bin/test.cgi" method="get">
  <input type="text" name="first" />
  <input type="text" name="second" />
  <input type="submit" />
form>
5 và thực hiện yêu cầu
<form action="/cgi-bin/test.cgi" method="get">
  <input type="text" name="first" />
  <input type="text" name="second" />
  <input type="submit" />
form>
6 vào đó. Trong trường hợp cụ thể này, chúng tôi đã đặt vào
<form action="/cgi-bin/test.cgi" method="get">
  <input type="text" name="first" />
  <input type="text" name="second" />
  <input type="submit" />
form>
7 làm tham số đầu tiên và sau đó chúng tôi có thể thêm các tham số bổ sung. Hãy bắt đầu với điều đó.
All right. We’re going to make a
<form action="/cgi-bin/test.cgi" method="get">
  <input type="text" name="first" />
  <input type="text" name="second" />
  <input type="submit" />
form>
5 variable and do a
<form action="/cgi-bin/test.cgi" method="get">
  <input type="text" name="first" />
  <input type="text" name="second" />
  <input type="submit" />
form>
6 request into it. In this particular case, we’d put in the
<form action="/cgi-bin/test.cgi" method="get">
  <input type="text" name="first" />
  <input type="text" name="second" />
  <input type="submit" />
form>
7 as a first parameter, and then we can add additional parameters. Let’s start with that.

01:42 Vì vậy, trong trường hợp này, chúng tôi sẽ nói params (tham số). Chúng tôi sẽ làm chúng như một từ điển. Nó chỉ có một, nhưng khóa của khóa sẽ là

<form action="/cgi-bin/test.cgi" method="get">
  <input type="text" name="first" />
  <input type="text" name="second" />
  <input type="submit" />
form>
9, giá trị là chúng tôi đang tìm kiếm
 <a href="foo.html">see my page!a>
 <a href="bar.html">mine is bettera>
0 và chúng tôi sẽ thêm một đối số thứ hai là
 <a href="foo.html">see my page!a>
 <a href="bar.html">mine is bettera>
1.
So in this case, we’re going to say params (parameters). We’ll do them as a dictionary. It’s only one, but… The key will be
<form action="/cgi-bin/test.cgi" method="get">
  <input type="text" name="first" />
  <input type="text" name="second" />
  <input type="submit" />
form>
9, the value is we’re searching for
 <a href="foo.html">see my page!a>
 <a href="bar.html">mine is bettera>
0, and we’ll add a second argument of
 <a href="foo.html">see my page!a>
 <a href="bar.html">mine is bettera>
1.

02:00 Chúng tôi sẽ thoát khỏi các dòng bổ sung này và xuống dưới cùng ở đây, chúng tôi sẽ kiểm tra một số thuộc tính từ kho lưu trữ. Chúng tôi sẽ tạo một biến khác với phản hồi JSON. We’ll get rid of these extra lines, and down at the bottom here we’ll inspect some attributes from the repository. We’ll make another variable with the JSON response.

02:12 Lấy đối tượng

<form action="/cgi-bin/test.cgi" method="get">
  <input type="text" name="first" />
  <input type="text" name="second" />
  <input type="submit" />
form>
5 của chúng tôi, có nó trở lại dưới dạng JSON, và sau đó chúng tôi sẽ tạo một đối tượng kho lưu trữ từ đó
 <a href="foo.html">see my page!a>
 <a href="bar.html">mine is bettera>
3.
Take our
<form action="/cgi-bin/test.cgi" method="get">
  <input type="text" name="first" />
  <input type="text" name="second" />
  <input type="submit" />
form>
5 object, have it come back as JSON, and then we’ll make a repository object that will be from that
 <a href="foo.html">see my page!a>
 <a href="bar.html">mine is bettera>
3.

02:24 Vì nó là một từ điển, chúng tôi sẽ kéo khóa

 <a href="foo.html">see my page!a>
 <a href="bar.html">mine is bettera>
4 và giá trị đầu tiên của nó. Giống như một tìm kiếm trên Google, bạn có may mắn không? Chúng tôi sẽ tìm thấy mục đầu tiên trong tìm kiếm của chúng tôi. Since it’s a dictionary, we’ll pull the
 <a href="foo.html">see my page!a>
 <a href="bar.html">mine is bettera>
4 key and its very first value. Like a Google search—are you lucky?—we’re going to find the very first item in our search.

02:38 Và từ đó đối tượng

 <a href="foo.html">see my page!a>
 <a href="bar.html">mine is bettera>
5 mà Lừa được trả lại, chúng tôi sẽ sử dụng một vài chìa khóa ở đây, một trong số đó là
 <a href="foo.html">see my page!a>
 <a href="bar.html">mine is bettera>
6, và sau đó thứ hai là chúng tôi sẽ rút lại
 <a href="foo.html">see my page!a>
 <a href="bar.html">mine is bettera>
7 và in chúng ra bằng cách sử dụng F-String. Một lần nữa, chỉ cần một lưu ý: bạn sẽ cần Python 3.6 trở lên để sử dụng chúng.
And from that
 <a href="foo.html">see my page!a>
 <a href="bar.html">mine is bettera>
5 object that’s being returned back, we’ll use a couple of keys here—one being the
 <a href="foo.html">see my page!a>
 <a href="bar.html">mine is bettera>
6, and then the second being we’ll pull back the
 <a href="foo.html">see my page!a>
 <a href="bar.html">mine is bettera>
7 and print them out using f-strings. Again, just a note: you will need Python 3.6 or higher to use these.

02:58 Vì vậy, hãy để Lôi lưu và để cho chạy nó. So, let’s save and let’s run it.

03:06 Nó tìm kiếm ngay bây giờ. Được rồi! Đây là những gì nó trở lại. Tên kho lưu trữ là requests! Chính xác những gì chúng tôi đang tìm kiếm, vì vậy chúng tôi đã có một cú hích tốt. Và nó đã in ra mô tả, mô tả là

 <a href="foo.html">see my page!a>
 <a href="bar.html">mine is bettera>
9. It’s searching right now. All right! Here is what it returned back. The repository name is requests! Exactly what we were looking for, so we got a good hit. And it printed out the description, the description being
 <a href="foo.html">see my page!a>
 <a href="bar.html">mine is bettera>
9.

03:22 Chúng tôi có thể sửa đổi nó một chút, cố gắng tìm kiếm một kho lưu trữ khác. We could modify it a little bit, try to search a different repository.

03:27 Hãy nói rằng chúng tôi đang tìm kiếm ____ 30 và có lẽ chúng tôi biết

 <a href="foo.html?e0a72cb2a2c7">see my page!a>
 <a href="bar.html?e0a72cb2a2c7">mine is bettera>
1 là một tham số. Hãy để lưu lại điều đó và thử lại. Let’s say we’re searching for
 <a href="foo.html?e0a72cb2a2c7">see my page!a>
 <a href="bar.html?e0a72cb2a2c7">mine is bettera>
0… and maybe we know the
 <a href="foo.html?e0a72cb2a2c7">see my page!a>
 <a href="bar.html?e0a72cb2a2c7">mine is bettera>
1 as a parameter. Let’s save that and try again.

03:47 Vì vậy, kho lưu trữ đó được đặt tên là

 <a href="foo.html?e0a72cb2a2c7">see my page!a>
 <a href="bar.html?e0a72cb2a2c7">mine is bettera>
2.
 <a href="foo.html?e0a72cb2a2c7">see my page!a>
 <a href="bar.html?e0a72cb2a2c7">mine is bettera>
3. Tuyệt quá!
So, that repository is named
 <a href="foo.html?e0a72cb2a2c7">see my page!a>
 <a href="bar.html?e0a72cb2a2c7">mine is bettera>
2.
 <a href="foo.html?e0a72cb2a2c7">see my page!a>
 <a href="bar.html?e0a72cb2a2c7">mine is bettera>
3. Great!

Chuỗi truy vấn là một phần của Trình định vị tài nguyên thống nhất (URL) gán các giá trị cho các tham số được chỉ định. Một chuỗi truy vấn thường bao gồm các trường được thêm vào URL cơ sở bởi trình duyệt web hoặc ứng dụng khách khác, ví dụ như là một phần của HTML, chọn sự xuất hiện của trang hoặc nhảy đến các vị trí trong nội dung đa phương tiện. [1] [2] [ 3]query string is a part of a uniform resource locator (URL) that assigns values to specified parameters. A query string commonly includes fields added to a base URL by a Web browser or other client application, for example as part of an HTML, choosing the appearance of a page, or jumping to positions in multimedia content.[1][2][3]

Hướng dẫn what is query string in python? - chuỗi truy vấn trong python là gì?

Một máy chủ web có thể xử lý yêu cầu Giao thức chuyển siêu văn bản (HTTP) bằng cách đọc một tệp từ hệ thống tệp của nó dựa trên đường dẫn URL hoặc bằng cách xử lý yêu cầu bằng logic dành riêng cho loại tài nguyên. Trong trường hợp logic đặc biệt được gọi, chuỗi truy vấn sẽ có sẵn cho logic đó để sử dụng trong quá trình xử lý của nó, cùng với thành phần đường dẫn của URL.

Structure[edit][edit]

URL điển hình chứa chuỗi truy vấn như sau:

 <a href="foo.html?e0a72cb2a2c7">see my page!a>
 <a href="bar.html?e0a72cb2a2c7">mine is bettera>
4

Khi một máy chủ nhận được yêu cầu cho một trang như vậy, nó có thể chạy một chương trình, chuyển chuỗi truy vấn, trong trường hợp này là

 <a href="foo.html?e0a72cb2a2c7">see my page!a>
 <a href="bar.html?e0a72cb2a2c7">mine is bettera>
5, không thay đổi cho chương trình. Dấu câu hỏi được sử dụng làm dấu phân cách và không phải là một phần của chuỗi truy vấn. [4] [5]

Các khung web có thể cung cấp các phương thức để phân tích nhiều tham số trong chuỗi truy vấn, được phân tách bằng một số dấu phân cách. [6] Trong URL ví dụ bên dưới, nhiều tham số truy vấn được phân tách bằng ampersand, "

 <a href="foo.html?e0a72cb2a2c7">see my page!a>
 <a href="bar.html?e0a72cb2a2c7">mine is bettera>
6":

 <a href="foo.html?e0a72cb2a2c7">see my page!a>
 <a href="bar.html?e0a72cb2a2c7">mine is bettera>
7

Cấu trúc chính xác của chuỗi truy vấn không được tiêu chuẩn hóa. Các phương thức được sử dụng để phân tích chuỗi truy vấn có thể khác nhau giữa các trang web.

Một liên kết trong một trang web có thể có một URL chứa chuỗi truy vấn. HTML xác định ba cách mà tác nhân người dùng có thể tạo chuỗi truy vấn:

  • Một biểu mẫu HTML thông qua phần tử
     <a href="foo.html?e0a72cb2a2c7">see my page!a>
     <a href="bar.html?e0a72cb2a2c7">mine is bettera>
    
    8
  • Bản đồ hình ảnh phía máy chủ thông qua thuộc tính
     <a href="foo.html?e0a72cb2a2c7">see my page!a>
     <a href="bar.html?e0a72cb2a2c7">mine is bettera>
    
    9 trên phần tử .get()0 với cấu trúc .get()1
  • Một tìm kiếm được lập chỉ mục thông qua phần tử .get()2 hiện đang bị phản đối

Mẫu web [Chỉnh sửa][edit]

Một trong những cách sử dụng ban đầu là chứa nội dung của biểu mẫu HTML, còn được gọi là Mẫu web. Cụ thể, khi một biểu mẫu chứa các trường .get()3, .get()4, .get()5 được gửi, nội dung của các trường được mã hóa dưới dạng chuỗi truy vấn như sau:

.get()6

  • Chuỗi truy vấn bao gồm một loạt các cặp giá trị trường.
  • Trong mỗi cặp, tên trường và giá trị được phân tách bằng một dấu bằng, ".get()7".
  • Một loạt các cặp được phân tách bằng ampersand, "
     <a href="foo.html?e0a72cb2a2c7">see my page!a>
     <a href="bar.html?e0a72cb2a2c7">mine is bettera>
    
    6" (dấu chấm phẩy ".get()9" không được khuyến nghị bởi W3C nữa, xem bên dưới).

Mặc dù không có tiêu chuẩn dứt khoát, hầu hết các khung web cho phép nhiều giá trị được liên kết với một trường duy nhất (ví dụ: ____ 50). [7] [8]

Đối với mỗi trường của biểu mẫu, chuỗi truy vấn chứa một cặp params1. Các biểu mẫu web có thể bao gồm các trường không hiển thị cho người dùng; Các trường này được bao gồm trong chuỗi truy vấn khi biểu mẫu được gửi.

Công ước này là một khuyến nghị của W3C. [6] Trong các khuyến nghị năm 1999, W3C khuyến nghị rằng tất cả các máy chủ Web đều hỗ trợ các bộ phân cách dấu chấm phẩy ngoài các bộ phân cách ampersand [9] để cho phép các chuỗi truy vấn ứng dụng/X-WWW-form-urlencoded trong các URL trong các tài liệu HTML mà không cần phải thực hiện thoát khỏi ampers và. Kể từ năm 2014, W3C khuyến nghị chỉ sử dụng ampers và làm phân tách truy vấn [10]

Nội dung biểu mẫu chỉ được mã hóa trong chuỗi truy vấn của URL khi phương thức gửi biểu mẫu được nhận. Mã hóa tương tự được sử dụng theo mặc định khi phương thức gửi được đăng, nhưng kết quả được gửi dưới dạng thân yêu cầu HTTP thay vì được đưa vào URL đã sửa đổi. [1]

Tìm kiếm được lập chỉ mục [Chỉnh sửa][edit]

Trước khi các biểu mẫu được thêm vào HTML, các trình duyệt đã hiển thị phần tử .get()2 dưới dạng điều khiển đầu vào văn bản một dòng. Văn bản được nhập vào điều khiển này đã được gửi đến máy chủ như một chuỗi truy vấn bổ sung vào yêu cầu nhận cho URL cơ sở hoặc URL khác được chỉ định bởi thuộc tính params3. [11] Điều này được dự định để cho phép các máy chủ web sử dụng văn bản được cung cấp làm tiêu chí truy vấn để họ có thể trả về danh sách các trang phù hợp. [12]

Khi đầu vào văn bản vào điều khiển tìm kiếm được lập chỉ mục được gửi, nó được mã hóa dưới dạng chuỗi truy vấn như sau:

params4

  • Chuỗi truy vấn bao gồm một loạt các đối số bằng cách phân tích các văn bản vào các từ ở khoảng trắng.
  • Sê -ri được phân tách bằng dấu cộng, '
    <form action="/cgi-bin/test.cgi" method="get">
      <input type="text" name="first" />
      <input type="text" name="second" />
      <input type="submit" />
    form>
    
    2'.

Mặc dù phần tử .get()2 không được chấp nhận và hầu hết các trình duyệt không còn hỗ trợ hoặc hiển thị nó, nhưng vẫn có một số dấu tích tìm kiếm được lập chỉ mục tồn tại. Ví dụ, đây là nguồn xử lý đặc biệt của dấu cộng, '

<form action="/cgi-bin/test.cgi" method="get">
  <input type="text" name="first" />
  <input type="text" name="second" />
  <input type="submit" />
form>
2' trong mã hóa phần trăm URL của trình duyệt (ngày nay, với sự phản đối của tìm kiếm được lập chỉ mục, là tất cả nhưng dư thừa với params8). Ngoài ra, một số máy chủ web hỗ trợ CGI (ví dụ: Apache) sẽ xử lý chuỗi truy vấn vào các đối số dòng lệnh nếu nó không chứa dấu bằng, '.get()7' (theo Mục 4.4 của CGI 1.1). Một số tập lệnh CGI vẫn phụ thuộc và sử dụng hành vi lịch sử này cho các URL được nhúng trong HTML.

Mã hóa URL [Chỉnh sửa][edit]

Một số ký tự không thể là một phần của URL (ví dụ: không gian) và một số ký tự khác có ý nghĩa đặc biệt trong URL: ví dụ, ký tự requests0 có thể được sử dụng để chỉ định thêm một tiểu mục (hoặc đoạn) của tài liệu. Trong các hình thức HTML, ký tự .get()7 được sử dụng để tách tên khỏi một giá trị. Cú pháp chung của URI sử dụng mã hóa URL để giải quyết vấn đề này, trong khi các hình thức HTML tạo ra một số thay thế bổ sung thay vì áp dụng phần trăm mã hóa cho tất cả các ký tự như vậy. Không gian được mã hóa là '

<form action="/cgi-bin/test.cgi" method="get">
  <input type="text" name="first" />
  <input type="text" name="second" />
  <input type="submit" />
form>
2' hoặc "________ 58". [13]

HTML 5 Chỉ định chuyển đổi sau đây để gửi các biểu mẫu HTML với phương thức "GET" cho máy chủ web. [1] Sau đây là một bản tóm tắt ngắn gọn về thuật toán:

  • Các ký tự không thể được chuyển đổi thành Charset chính xác được thay thế bằng các tham chiếu ký tự số HTML [14]
  • Không gian được mã hóa là '
    <form action="/cgi-bin/test.cgi" method="get">
      <input type="text" name="first" />
      <input type="text" name="second" />
      <input type="submit" />
    form>
    
    2' hoặc 'params8'
  • Các chữ cái (________ 66, ____________ 67 và ________ 68 ____________ 69), số (____ 70
  • <form action="/cgi-bin/test.cgi" method="get">
      <input type="text" name="first" />
      <input type="text" name="second" />
      <input type="submit" />
    form>
    
    2 được mã hóa bởi %2b
  • Tất cả các ký tự khác được mã hóa dưới dạng biểu diễn thập phân ?7 với bất kỳ ký tự không ASCII nào được mã hóa đầu tiên là UTF-8 (hoặc mã hóa được chỉ định khác)

Octet tương ứng với TILDE ("?2") được cho phép trong các chuỗi truy vấn bởi RFC3986 nhưng được yêu cầu được mã hóa phần trăm theo dạng HTML thành "?9".

Việc mã hóa không gian là '

<form action="/cgi-bin/test.cgi" method="get">
  <input type="text" name="first" />
  <input type="text" name="second" />
  <input type="submit" />
form>
2' và lựa chọn các ký tự "AS-IS" phân biệt mã hóa này với RFC 3986.

Example[edit][edit]

Nếu một biểu mẫu được nhúng trong trang HTML như sau:

<form action="/cgi-bin/test.cgi" method="get">
  <input type="text" name="first" />
  <input type="text" name="second" />
  <input type="submit" />
form>

Và người dùng chèn các chuỗi Đây là một lĩnh vực và và có rõ ràng không (đã)? Trong hai trường văn bản và nhấn nút gửi, chương trình .content1 (chương trình được chỉ định bởi thuộc tính params3 của phần tử .content3 trong ví dụ trên) sẽ nhận được chuỗi truy vấn sau: .content4.

Nếu biểu mẫu được xử lý trên máy chủ bằng tập lệnh CGI, tập lệnh thường có thể nhận chuỗi truy vấn dưới dạng biến môi trường có tên .content5.

Tracking[edit][edit]

Một chương trình nhận một chuỗi truy vấn có thể bỏ qua một phần hoặc tất cả. Nếu URL được yêu cầu tương ứng với một tệp và không phải với một chương trình, toàn bộ chuỗi truy vấn sẽ bị bỏ qua. Tuy nhiên, bất kể chuỗi truy vấn có được sử dụng hay không, toàn bộ URL bao gồm nó được lưu trữ trong các tệp nhật ký máy chủ.

Những sự thật này cho phép các chuỗi truy vấn được sử dụng để theo dõi người dùng theo cách tương tự như được cung cấp bởi cookie HTTP. Để hoạt động này, mỗi khi người dùng tải xuống một trang, một mã định danh duy nhất phải được chọn và thêm dưới dạng chuỗi truy vấn vào URL của tất cả các liên kết mà trang chứa. Ngay khi người dùng theo dõi một trong các liên kết này, URL tương ứng được yêu cầu đến máy chủ. Bằng cách này, việc tải xuống của trang này được liên kết với trang trước.

Ví dụ: khi một trang web chứa các phần sau được yêu cầu:

 <a href="foo.html">see my page!a>
 <a href="bar.html">mine is bettera>

Một chuỗi duy nhất, chẳng hạn như .content6 được chọn và trang được sửa đổi như sau:

 <a href="foo.html?e0a72cb2a2c7">see my page!a>
 <a href="bar.html?e0a72cb2a2c7">mine is bettera>

Việc bổ sung chuỗi truy vấn không thay đổi cách trang được hiển thị cho người dùng. Ví dụ, khi người dùng theo dõi liên kết đầu tiên, trình duyệt yêu cầu trang .content7 đến máy chủ, bỏ qua những gì sau ? và gửi trang .content9 như mong đợi, cũng thêm chuỗi truy vấn vào các liên kết của nó.

Bằng cách này, mọi yêu cầu trang tiếp theo từ người dùng này sẽ mang theo cùng một chuỗi truy vấn .content6, cho phép xác định rằng tất cả các trang này đã được cùng người dùng xem. Các chuỗi truy vấn thường được sử dụng liên quan đến đèn hiệu web.

Sự khác biệt chính giữa các chuỗi truy vấn được sử dụng để theo dõi và cookie HTTP là:

  1. Các chuỗi truy vấn là một phần của URL và do đó được bao gồm nếu người dùng lưu hoặc gửi URL cho người dùng khác; Cookie có thể được duy trì trên các phiên duyệt, nhưng không được lưu hoặc gửi với URL.
  2. Nếu người dùng đến cùng một máy chủ web bởi hai (hoặc nhiều) đường dẫn độc lập, nó sẽ được chỉ định hai chuỗi truy vấn khác nhau, trong khi các cookie được lưu trữ là như nhau.
  3. Người dùng có thể vô hiệu hóa cookie, trong trường hợp sử dụng cookie để theo dõi không hoạt động. Tuy nhiên, sử dụng chuỗi truy vấn để theo dõi nên hoạt động trong mọi tình huống.
  4. Các chuỗi truy vấn khác nhau được truyền qua các lượt truy cập khác nhau vào trang sẽ có nghĩa là các trang không bao giờ được phục vụ từ trình duyệt (hoặc proxy, nếu có) bộ nhớ cache do đó tăng tải trên máy chủ web và làm chậm trải nghiệm người dùng.

Các vấn đề tương thích [Chỉnh sửa][edit]

Theo đặc tả HTTP:

Các giới hạn ad hoc khác nhau về độ dài dòng yêu cầu được tìm thấy trong thực tế. Chúng tôi khuyến nghị rằng tất cả người gửi và người nhận HTTP hỗ trợ, ở mức tối thiểu, độ dài dòng yêu cầu là 8000 octet. [15]

Nếu URL quá dài, máy chủ web không thành công với mã trạng thái HTTP 414 yêu cầu quá dài.

Cách giải quyết phổ biến cho những vấn đề này là sử dụng POST thay vì lấy và lưu trữ các tham số trong thân yêu cầu. Các giới hạn độ dài trên các cơ quan yêu cầu thường cao hơn nhiều so với độ dài URL. Ví dụ: giới hạn về kích thước bài, theo mặc định, là 2 & nbsp; MB trên IIS 4.0 và 128 & NBSP; KB trên IIS 5.0. Giới hạn có thể định cấu hình trên APACHE2 bằng Chỉ thị commit_search_url1, chỉ định số lượng byte từ 0 (có nghĩa là không giới hạn) đến 2147483647 (2 & NBSP; GB) được phép trong thân yêu cầu. [16]

Xem thêm [sửa][edit]

  • URL sạch
  • Nhấp vào Định danh
  • Giao diện Cổng chung (CGI)
  • Cookie http
  • Giao thức chuyển siêu văn bản (HTTP)
  • URL ngữ nghĩa
  • Đề án URI
  • Tham số UTM
  • Beacon web

References[edit][edit]

  1. ^ ABC [1], HTML5.2, Khuyến nghị W3C, ngày 14 tháng 12 năm 2017a b c [1], HTML5.2, W3C recommendation, 14 December 2017
  2. ^4 cách khác nhau để thêm dấu thời gian trên YouTube 4 Different Ways to Add Timestamps on YouTube
  3. ^Tham số cho index.php - mediawiki Parameters to index.php – MediaWiki
  4. ^T. Berners-Lee; R. Fielding; L. Masinter (tháng 1 năm 2005). "RFC 3986". "Thành phần cú pháp" (Phần 3). T. Berners-Lee; R. Fielding; L. Masinter (January 2005). "RFC 3986". "Syntax Components" (section 3).
  5. ^T. Berners-Lee; R. Fielding; L. Masinter (tháng 1 năm 2005). "RFC 3986". "Truy vấn" (Phần 3.4). T. Berners-Lee; R. Fielding; L. Masinter (January 2005). "RFC 3986". "Query" (section 3.4).
  6. ^ abforms trong tài liệu HTML. W3.org. Truy cập vào ngày 2013-09-08.a b Forms in HTML documents. W3.org. Retrieved on 2013-09-08.
  7. ^"ServletRequest (Java ee 6)". Docs.oracle.com. 2011 / 02-10. Truy cập 2013-09-08. "ServletRequest (Java EE 6 )". docs.oracle.com. 2011-02-10. Retrieved 2013-09-08.
  8. ^"URI - Vị trí có thẩm quyền của HTTP HTTP trùng lặp". Stack Overflow. 2013-06-09. Truy cập 2013-09-08. "uri – Authoritative position of duplicate HTTP GET query keys". Stack Overflow. 2013-06-09. Retrieved 2013-09-08.
  9. ^Hiệu suất, thực hiện và ghi chú thiết kế. W3.org. Truy cập vào ngày 2013-09-08. Performance, Implementation, and Design Notes. W3.org. Retrieved on 2013-09-08.
  10. ^"4.10 Hình thức - HTML5". "4.10 Forms — HTML5".
  11. ^"". HTML (Ngôn ngữ đánh dấu siêu văn bản). "". HTML (HyperText Markup Language).
  12. ^"Html/phần tử/isindex". W3C Wiki. "HTML/Elements/isindex". W3C Wiki.
  13. ^"Tham chiếu mã hóa URL Html". W3Schools. Truy cập ngày 1 tháng 5 năm 2013. "HTML URL Encoding Reference". W3Schools. Retrieved May 1, 2013.
  14. ^Thuật toán mã hóa ứng dụng/X-www-form-urlencoded, HTML5.2, Khuyến nghị W3C, ngày 14 tháng 12 năm 2017 The application/x-www-form-urlencoded encoding algorithm, HTML5.2, W3C recommendation, 14 December 2017
  15. ^HTTP/1.1 Tin nhắn Cú pháp và định tuyến. ietf.org. Truy cập vào ngày 2014-07-31. HTTP/1.1 Message Syntax and Routing. ietf.org. Retrieved on 2014-07-31.
  16. ^Core - Máy chủ Apache HTTP. Httpd.apache.org. Truy cập vào ngày 2013-09-08. core – Apache HTTP Server. Httpd.apache.org. Retrieved on 2013-09-08.

Chuỗi truy vấn với ví dụ là gì?

Chuỗi truy vấn thường bao gồm các trường được thêm vào URL cơ sở bởi trình duyệt web hoặc ứng dụng khách khác, ví dụ như là một phần của HTML, chọn sự xuất hiện của trang hoặc nhảy đến các vị trí trong nội dung đa phương tiện.fields added to a base URL by a Web browser or other client application, for example as part of an HTML, choosing the appearance of a page, or jumping to positions in multimedia content.

Chuỗi truy vấn có nghĩa là gì?

QueryString là một tập hợp các ký tự nhập vào máy tính hoặc trình duyệt web và được gửi đến một chương trình truy vấn để khôi phục thông tin cụ thể từ cơ sở dữ liệu.a set of characters input to a computer or Web browser and sent to a query program to recover specific information from a database .

Chuỗi truy vấn được sử dụng ở đâu?

Các chuỗi truy vấn có thể được sử dụng để mang hầu hết mọi loại dữ liệu trở lại máy chủ web của bạn cho một loạt các mục đích rất rộng.Bất kỳ tham số chuỗi truy vấn nào được thêm vào URL được nhập vào thanh địa chỉ của trình duyệt web có thể sẽ được ghi lại và ghi lại cùng với phần còn lại của URL bằng máy chủ web trả lời.to carry almost any type of data back to your web servers for a very wide range of purposes. Any query string parameters added to the URL typed into the address bar of the web browser will likely be captured and logged along with the rest of the URL by a responding web server.

Chuỗi truy vấn chứa gì?

Một chuỗi truy vấn là một tập hợp các ký tự được giải quyết vào cuối URL.Chuỗi truy vấn bắt đầu sau dấu hỏi (?) Và có thể bao gồm một hoặc nhiều tham số.Mỗi tham số được biểu thị bằng một cặp giá trị khóa duy nhất hoặc một tập hợp hai mục dữ liệu được liên kết.Một dấu bằng (=) phân tách từng khóa và giá trị.one or more parameters. Each parameter is represented by a unique key-value pair or a set of two linked data items. An equals sign (=) separates each key and value.