Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Request::connect can build an invalid Request object

Đang mở
#494 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
35/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
rust
Lĩnh vực
networking

Hướng nghiên cứu

Bắt đầu bằng cách đọc tài liệu về Request::connect và Uri::authority, sau đó lần theo lệnh gọi body() được示 trong ví dụ. Xác định hành vi RFC 2817 nào được dự định và xác minh rằng việc xây dựng một yêu cầu CONNECT không thể giữ lại một URI đầy đủ không hợp lệ.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

According to RFC2817, Section 5.2 the URI of the CONNECT method should be only the authority part:

A CONNECT method requests that a proxy establish a tunnel connection
on its behalf. The Request-URI portion of the Request-Line is always
an 'authority' as defined by URI Generic Syntax [2], which is to say
the host name and port number destination of the requested connection
separated by a colon:

However with the http 0.2.4 crate it is possible to create a CONNECT request with an invalid URI part.

Example:

use http::Request;
use http::Uri;

fn main() {
    let u: Uri = "http://example.org/index.html".parse().unwrap();
    let r = Request::connect(u).body(()).unwrap();
    dbg!(&r);
}

Output:

[src/main.rs:7] &r = Request {
    method: CONNECT,
    uri: http://example.org/index.html,
    version: HTTP/1.1,
    headers: {},
    body: (),
}

Rust Playground Link

Available options are:

Ngôn ngữ chính
Rust
Star
1.4k
Fork
378
Merge trung bình
1 ngày 21 giờ
Pull request đã merge (30 ngày)
5

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của hyperium/http

Tất cả issue của hyperium/http

Issue tương tự

Thêm issue về Rust

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.