mirror of
https://github.com/jetty/jetty.project.git
synced 2025-02-28 02:49:11 +00:00
Issue #6728 - QUIC and HTTP/3
- Fixed module-info.java for HTTP/3 modules. - Updated package-info.java for QUIC. Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
This commit is contained in:
parent
2d4cb5abbf
commit
2e98931654
@ -14,7 +14,6 @@
|
||||
module org.eclipse.jetty.http3.client
|
||||
{
|
||||
exports org.eclipse.jetty.http3.client;
|
||||
exports org.eclipse.jetty.http3.client.internal;
|
||||
|
||||
requires transitive org.eclipse.jetty.http3.common;
|
||||
requires transitive org.eclipse.jetty.http3.qpack;
|
||||
|
@ -13,13 +13,11 @@
|
||||
|
||||
module org.eclipse.jetty.http3.common
|
||||
{
|
||||
exports org.eclipse.jetty.http3;
|
||||
exports org.eclipse.jetty.http3.api;
|
||||
exports org.eclipse.jetty.http3.frames;
|
||||
|
||||
exports org.eclipse.jetty.http3.internal to org.eclipse.jetty.http3.client, org.eclipse.jetty.http3.server;
|
||||
exports org.eclipse.jetty.http3.internal.generator to org.eclipse.jetty.http3.client, org.eclipse.jetty.http3.server;
|
||||
exports org.eclipse.jetty.http3.internal.parser to org.eclipse.jetty.http3.client, org.eclipse.jetty.http3.server;
|
||||
exports org.eclipse.jetty.http3.internal;
|
||||
|
||||
requires transitive org.eclipse.jetty.http;
|
||||
requires transitive org.eclipse.jetty.http3.qpack;
|
||||
|
@ -11,7 +11,7 @@
|
||||
// ========================================================================
|
||||
//
|
||||
|
||||
package org.eclipse.jetty.http3;
|
||||
package org.eclipse.jetty.http3.internal;
|
||||
|
||||
public enum ErrorCode
|
||||
{
|
@ -15,8 +15,8 @@ package org.eclipse.jetty.http3.internal.parser;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
|
||||
import org.eclipse.jetty.http3.ErrorCode;
|
||||
import org.eclipse.jetty.http3.frames.SettingsFrame;
|
||||
import org.eclipse.jetty.http3.internal.ErrorCode;
|
||||
import org.eclipse.jetty.util.BufferUtil;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
@ -15,8 +15,8 @@ package org.eclipse.jetty.http3.internal.parser;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
|
||||
import org.eclipse.jetty.http3.ErrorCode;
|
||||
import org.eclipse.jetty.http3.frames.FrameType;
|
||||
import org.eclipse.jetty.http3.internal.ErrorCode;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
|
@ -19,8 +19,8 @@ import java.util.List;
|
||||
import java.util.function.BooleanSupplier;
|
||||
|
||||
import org.eclipse.jetty.http.MetaData;
|
||||
import org.eclipse.jetty.http3.ErrorCode;
|
||||
import org.eclipse.jetty.http3.frames.HeadersFrame;
|
||||
import org.eclipse.jetty.http3.internal.ErrorCode;
|
||||
import org.eclipse.jetty.http3.qpack.QpackDecoder;
|
||||
import org.eclipse.jetty.http3.qpack.QpackException;
|
||||
import org.eclipse.jetty.util.BufferUtil;
|
||||
|
@ -17,8 +17,8 @@ import java.nio.ByteBuffer;
|
||||
import java.util.function.BooleanSupplier;
|
||||
import java.util.function.UnaryOperator;
|
||||
|
||||
import org.eclipse.jetty.http3.ErrorCode;
|
||||
import org.eclipse.jetty.http3.frames.FrameType;
|
||||
import org.eclipse.jetty.http3.internal.ErrorCode;
|
||||
import org.eclipse.jetty.http3.qpack.QpackDecoder;
|
||||
import org.eclipse.jetty.util.BufferUtil;
|
||||
import org.slf4j.Logger;
|
||||
|
@ -17,8 +17,8 @@ import java.nio.ByteBuffer;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.eclipse.jetty.http3.ErrorCode;
|
||||
import org.eclipse.jetty.http3.frames.SettingsFrame;
|
||||
import org.eclipse.jetty.http3.internal.ErrorCode;
|
||||
import org.eclipse.jetty.http3.internal.VarLenInt;
|
||||
|
||||
public class SettingsBodyParser extends BodyParser
|
||||
|
@ -14,7 +14,6 @@
|
||||
module org.eclipse.jetty.http3.server
|
||||
{
|
||||
exports org.eclipse.jetty.http3.server;
|
||||
exports org.eclipse.jetty.http3.server.internal;
|
||||
|
||||
requires transitive org.eclipse.jetty.http3.common;
|
||||
requires transitive org.eclipse.jetty.http3.qpack;
|
||||
|
@ -14,30 +14,39 @@
|
||||
/**
|
||||
* <p>This module contains the main abstractions for the QUIC protocol.</p>
|
||||
* <p>A {@link org.eclipse.jetty.quic.common.QuicConnection} is a {@link org.eclipse.jetty.io.Connection}
|
||||
* that receives and sends bytes from its underlying datagram {@link org.eclipse.jetty.io.EndPoint}.</p>
|
||||
* that receives and sends bytes from its underlying {@link org.eclipse.jetty.io.DatagramChannelEndPoint}.</p>
|
||||
* <p>A {@link org.eclipse.jetty.quic.common.QuicConnection} manages many {@link org.eclipse.jetty.quic.common.QuicSession}s,
|
||||
* one for each QUIC connection ID.</p>
|
||||
* <p>A {@link org.eclipse.jetty.quic.common.QuicSession} manages many QUIC streams, identified by a
|
||||
* stream ID and represented by an {@link org.eclipse.jetty.io.EndPoint} subclass, namely
|
||||
* {@link org.eclipse.jetty.quic.common.QuicStreamEndPoint}.</p>
|
||||
* stream ID and represented by {@link org.eclipse.jetty.quic.common.QuicStreamEndPoint}.</p>
|
||||
* <p>A {@link org.eclipse.jetty.quic.common.QuicSession} delegates I/O processing to a protocol-specific
|
||||
* {@link org.eclipse.jetty.quic.common.ProtocolSession}, whose responsibility is to use QUIC streams
|
||||
* to implement the protocol-specific I/O processing.</p>
|
||||
* <p>The {@link org.eclipse.jetty.io.Connection} associated with each {@link org.eclipse.jetty.quic.common.QuicStreamEndPoint}
|
||||
* parses the bytes received on that QUIC stream, and generates the bytes to send on that QUIC stream.</p>
|
||||
* <p>For example, on the server side, the layout of the components in case of HTTP/1.1 could be the following:</p>
|
||||
* parses the bytes received on the QUIC stream represented by the {@link org.eclipse.jetty.quic.common.QuicStreamEndPoint},
|
||||
* and generates the bytes to send on that QUIC stream.</p>
|
||||
* <p>On the client side, the layout of the components in case of HTTP/1.1 could be the following:</p>
|
||||
* <pre>
|
||||
* DatagramChannelEndPoint -- QuicConnection -- QuicSession -- ProtocolSession -- QuicStreamEndPoint -- HttpConnectionOverHTTP
|
||||
* </pre>
|
||||
* <p>The client-specific {@link org.eclipse.jetty.quic.common.ProtocolSession} creates a bidirectional QUIC stream
|
||||
* that represent the same transport as a TCP stream, over which HTTP/1.1 bytes are exchanged by the two peers.</p>
|
||||
* <p>On the server side, the layout of the components in case of HTTP/1.1 could be the following:</p>
|
||||
* <pre>
|
||||
* CLIENT | SERVER
|
||||
*
|
||||
* clientA ServerQuicSessionA
|
||||
* \ /
|
||||
* DatagramChannelEndPoint -- ServerQuicConnection
|
||||
* / \
|
||||
* clientB ServerQuicSessionB -- QuicStreamEndPointB1 -- HttpConnection
|
||||
* clientA QuicSessionA -- ProtocolSessionA -- QuicStreamEndPointA -- HttpConnection
|
||||
* \ /
|
||||
* DatagramChannelEndPoint -- QuicConnection
|
||||
* / \
|
||||
* clientB QuicSessionB -- ProtocolSessionB -- QuicStreamEndPointB -- HttpConnection
|
||||
* </pre>
|
||||
* <p>The {@code DatagramChannelEndPoint} receives UDP datagrams from clients.</p>
|
||||
* <p>{@code ServerQuicConnection} processes the incoming datagram bytes creating a {@code ServerQuicSession} for every
|
||||
* <p>{@code QuicConnection} processes the incoming datagram bytes creating a {@code QuicSession} for every
|
||||
* QUIC connection ID sent by the clients.</p>
|
||||
* <p>{@code clientB} has created a single QUIC stream to send a single HTTP/1.1 request, which results in
|
||||
* {@code ServerQuicSessionB} to create a single {@code QuicStreamEndPointB1} with its associated {@code HttpConnection}.</p>
|
||||
* <p>Note that the path {@code DatagramChannelEndPoint - ServerQuicConnection - ServerQuicSessionB - QuicStreamEndPointB1}
|
||||
* <p>The clients have created a single QUIC stream to send HTTP/1.1 requests, which results in the
|
||||
* {@code QuicSession}s to create a correspondent {@code QuicStreamEndPoint} with its associated {@code HttpConnection}.</p>
|
||||
* <p>The path {@code DatagramChannelEndPoint - QuicConnection - QuicSession - QuicStreamEndPoint}
|
||||
* behaves exactly like a TCP {@link org.eclipse.jetty.io.SocketChannelEndPoint} for the associated
|
||||
* {@code HttpConnection}.</p>
|
||||
*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user