33#ifndef A11_NET_HTTP_URL_H_
34#define A11_NET_HTTP_URL_H_
40#include <absl/status/statusor.h>
58 [[nodiscard]]
bool secure()
const;
63 [[nodiscard]] std::string
authority()
const;
65 [[nodiscard]] std::string
target()
const;
67 [[nodiscard]] std::string
origin()
const;
69 [[nodiscard]] std::string
ToString()
const;
85absl::StatusOr<ParsedUrl>
ParseUrl(std::string_view url);
101 std::string_view reference);
absl::StatusOr< ParsedUrl > ResolveReference(const ParsedUrl &base, std::string_view reference)
Resolves reference against base, as a redirect target.
Definition url.cc:202
std::uint16_t DefaultPortForScheme(std::string_view scheme)
Definition url.cc:156
absl::StatusOr< ParsedUrl > ParseUrl(std::string_view url)
Parses an absolute http/https/ws/wss URL.
Definition url.cc:166
An absolute URL split into the parts a connection needs.
Definition url.h:50
bool secure() const
Definition url.cc:127
std::string host
Hostname or IP literal, without IPv6 brackets.
Definition url.h:52
std::string authority() const
Definition url.cc:131
std::string scheme
Lowercase, without "://" (e.g. "https").
Definition url.h:51
std::string path
Begins with '/', or is empty when none was given.
Definition url.h:54
std::string origin() const
Definition url.cc:148
std::string ToString() const
Definition url.cc:152
std::string query
Query without the leading '?'; empty when absent.
Definition url.h:55
std::uint16_t port
Explicit port, or the scheme's default.
Definition url.h:53
std::string target() const
Definition url.cc:140