No description
Find a file
2024-04-26 14:37:29 +02:00
gradle lift tests to module path 2024-03-04 16:03:29 +01:00
net-http lift tests to module path 2024-03-04 16:03:29 +01:00
net-http-client lift tests to module path 2024-03-04 16:03:29 +01:00
net-http-client-netty add security context related j2html resources 2024-04-15 17:23:37 +02:00
net-http-client-netty-secure add security context related j2html resources 2024-04-15 17:23:37 +02:00
net-http-client-simple lift tests to module path 2024-03-04 16:03:29 +01:00
net-http-j2html working on forcing cookies, better header setting/adding, session/userprofile persisting 2024-04-18 16:23:52 +02:00
net-http-netty-boringssl remove URL mutator method 2024-01-04 22:41:48 +01:00
net-http-netty-conscrypt lift tests to module path 2024-03-04 16:03:29 +01:00
net-http-netty-epoll initial commit 2022-10-20 10:19:32 +02:00
net-http-netty-kqueue initial commit 2022-10-20 10:19:32 +02:00
net-http-server do not break if we do not have a host name for cookie domain 2024-04-26 14:37:29 +02:00
net-http-server-application-config do not use config any more 2024-03-25 17:10:12 +01:00
net-http-server-application-database do not use config any more 2024-03-25 17:10:12 +01:00
net-http-server-application-journal do not use config any more 2024-03-25 17:10:12 +01:00
net-http-server-application-web working on forcing cookies, better header setting/adding, session/userprofile persisting 2024-04-18 16:23:52 +02:00
net-http-server-netty working on forcing cookies, better header setting/adding, session/userprofile persisting 2024-04-18 16:23:52 +02:00
net-http-server-netty-secure working on forcing cookies, better header setting/adding, session/userprofile persisting 2024-04-18 16:23:52 +02:00
net-http-server-nio working on forcing cookies, better header setting/adding, session/userprofile persisting 2024-04-18 16:23:52 +02:00
net-http-server-simple working on forcing cookies, better header setting/adding, session/userprofile persisting 2024-04-18 16:23:52 +02:00
net-http-server-simple-secure working on forcing cookies, better header setting/adding, session/userprofile persisting 2024-04-18 16:23:52 +02:00
net-http-template-groovy working on forcing cookies, better header setting/adding, session/userprofile persisting 2024-04-18 16:23:52 +02:00
.gitignore initial commit 2022-10-20 10:19:32 +02:00
build.gradle update to Netty 4.1.105 2024-01-19 10:58:46 +01:00
gradle.properties rename renderBody to renderHtml to avoid misconceptions, add some j2html error handlers, update to Netty 4.1.109 2024-04-17 11:26:08 +02:00
gradlew update to OpenJDK 21, Gradle 8.4-rc-1 2023-10-01 08:51:00 +02:00
gradlew.bat upgrade to Gradle 8.0.2, simplify module methods, simplify thread pool, cleanup router 2023-04-05 21:55:24 +02:00
LICENSE.txt initial commit 2022-10-20 10:19:32 +02:00
README.md initial commit 2022-10-20 10:19:32 +02:00
settings.gradle attach userprofile to session 2024-04-17 18:41:55 +02:00

Java Net API for servers and clients

A consolidated Uniform Resource Locator implementation for Java

A Uniform Resource Locator (URL) is a compact representation of the location and access method for a resource available via the Internet.

Historically, there are many different forms of internet resource representations, for example, the URL (RFC 1738 as of 1994), the URI (RFC 2396 as of 1998), and IRI (RFC 3987 as of 2005), and most of them have updated specifications.

This Java implementation serves as a universal point of handling all different forms. It follows the syntax of the Uniform Resource Identifier (RFC 3986) in accordance with the https://url.spec.whatwg.org/[WHATWG URL standard].

This alternative implementation of Uniform Resource Locator combines the features of the vanilla URI/URL Java SDK implementations but removes it peculiarities and deficiencies, such as java.lang.IllegalArgumentException: Illegal character in path at ... at java.net.URI.create()

Normalization, NIO charset encoding/decoding, IPv6, an extensive set of schemes, and path matching have been added.

Fast building and parsing URLs, improved percent decoding/encoding, and URI templating features are included, to make this library also useful in URI and IRI contexts.

While parsing and building, you have better control about address resolving. Only explicit resolveFromhost methods will execute host lookup queries against DNS resolvers, otherwise, no resolving will occur under the hood.

You can build URLs with a fluent API, for example

URL.http().host("foo.com").toUrlString()

And you can parse URLs with a fluent API, for exmaple

URL url = URL.parser().parse("file:///foo/bar?foo=bar#fragment");

There is no external dependency. The size of the jar library is ~118k. The only dependency on java.net are the classes

java.net.IDN
java.net.Inet4Address
java.net.Inet6Address
java.net.InetAddress

which might get re-implemented in another library at a later time, in a project like Netty DNS resolver.

A simple HTTP server

A netty-based HTTP server

License

Copyright (C) 2018 Jörg Prante

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. you may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.