From 45ac4fa56b6e5c31a28fd08eaad14a09bf3934f6 Mon Sep 17 00:00:00 2001 From: gdamore Date: Sun, 27 Oct 2024 18:55:51 +0000 Subject: deploy: ffeb31c64ea72c4eb287f75b641ca2a707df90b0 --- ref/api/url.html | 370 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 370 insertions(+) create mode 100644 ref/api/url.html (limited to 'ref/api/url.html') diff --git a/ref/api/url.html b/ref/api/url.html new file mode 100644 index 00000000..3f13797f --- /dev/null +++ b/ref/api/url.html @@ -0,0 +1,370 @@ + + + + + + URLs - NNG Reference Manual (DRAFT) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+ +

URLs

+

Universal Resource Locators, or URLs for short, are a standardized +way of representing a network resource, +defined in RFC 1738, +and RFC 3968.

+

In Scalability Protocols, this concept is extended, although it includes schemes +that are not part of the IETF standards.

+

URL Structure

+
typedef struct nng_url {
+    char *u_rawurl;
+    char *u_scheme;
+    char *u_userinfo;
+    char *u_host;
+    char *u_hostname;
+    char *u_port;
+    char *u_path;
+    char *u_query;
+    char *u_fragment;
+    char *u_requri;
+} nng_url;
+
+

URL Fields

+

Applications may access individual fields, but must not free or +alter them, as the underlying memory is managed by the library.

+

The fields of an nng_url object are as follows:

+
    +
  • u_rawurl: The unparsed URL string. This will never be NULL.
  • +
  • u_scheme: The URL scheme, such as “http” or “inproc”. Always lower case. This will never be NULL.
  • +
  • u_userinfo: This username and password if supplied in the URL string. Will be NULL when not present.
  • +
  • u_host: The full host part of the URL, including the port if present (separated by a colon.)
  • +
  • u_hostname: The name of the host, and may be the empty string in some cases.
  • +
  • u_port: The port. May be empty if irrelevant or not specified.
  • +
  • u_path: The path, typically used with HTTP or WebSockets. Will be empty string if not specified.
  • +
  • u_query: The query info (typically following ? in the URL.) Will be NULL if not present.
  • +
  • u_fragment: This is used for specifying an anchor, the part after # in a URL. Will be NULL if not present.
  • +
  • u_requri: The full Request-URI. Will be the empty string if not specified.
  • +
+
+

+ + note +

+

Other fields may also be present, but only those documented here are safe for application use.

+
+

Parse a URL

+
int nng_url_parse(nng_url **urlp, const char *str);
+
+

The nng_url_parse function parses a URL string (in str), +and creates a dynamically allocated nng_url, returning it in urlp.

+
+

+ + important +

+

Only nng_url_free should be used to deallocate nng_url objects.

+
+

Clone a URL

+
int nng_url_clone(nng_url **dup, nng_url *url);
+
+

The nng_url_clone function creates a copy of url, and returns it in dup.

+

Destroy a URL

+
void nng_url_free(nng_url *url);
+
+

The nng_url_free function destroy an nng_url object created with +either nng_url_parse or nng_url_free.

+

This is the only correct way to destroy an nng_url object.

+

See Also

+

More information about Universal Resource Locators can be found in +RFC 3986.

+ + + + + + +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + +
+ + -- cgit v1.2.3-70-g09d2