fune/netwerk/protocol/http
Iulian Moraru 7af8c65261 Backed out 2 changesets (bug 1711622) for causing reftest failures on accept-image-catchall.html. CLOSED TREE
Backed out changeset 877d9c37605a (bug 1711622)
Backed out changeset c315e89b6e4b (bug 1711622)
2024-05-20 16:59:04 +03:00
..
binary_http
oblivious_http
AltDataOutputStreamChild.cpp
AltDataOutputStreamChild.h
AltDataOutputStreamParent.cpp
AltDataOutputStreamParent.h
AlternateServices.cpp Bug 1866218 - Use the latest version of HTTP/3 from Alt-Svc headers, r=necko-reviewers,valentin 2024-03-04 12:49:19 +00:00
AlternateServices.h Bug 1866218 - Use the latest version of HTTP/3 from Alt-Svc headers, r=necko-reviewers,valentin 2024-03-04 12:49:19 +00:00
AltServiceChild.cpp
AltServiceChild.h
AltServiceParent.cpp
AltServiceParent.h
AltSvcTransactionChild.cpp
AltSvcTransactionChild.h
AltSvcTransactionParent.cpp
AltSvcTransactionParent.h
ASpdySession.cpp
ASpdySession.h
BackgroundChannelRegistrar.cpp
BackgroundChannelRegistrar.h
BackgroundDataBridgeChild.cpp
BackgroundDataBridgeChild.h
BackgroundDataBridgeParent.cpp
BackgroundDataBridgeParent.h
BinaryHttpRequest.cpp
BinaryHttpRequest.h
CacheControlParser.cpp Bug 1872460 - FIX Cache Control Parser ignoring the rest of the header in case of negative Integer values, r=necko-reviewers,valentin 2024-03-05 14:18:18 +00:00
CacheControlParser.h
CachePushChecker.cpp
CachePushChecker.h
ClassOfService.h
components.conf
ConnectionDiagnostics.cpp
ConnectionEntry.cpp Bug 1420777 - Coalesce connections less aggresively r=necko-reviewers,kershaw 2024-04-04 17:24:35 +00:00
ConnectionEntry.h Bug 1420777 - Coalesce connections less aggresively r=necko-reviewers,kershaw 2024-04-04 17:24:35 +00:00
ConnectionHandle.cpp
ConnectionHandle.h
DnsAndConnectSocket.cpp
DnsAndConnectSocket.h
EarlyHintPreconnect.cpp
EarlyHintPreconnect.h
EarlyHintPreloader.cpp Bug 1887719 - More consistently use UTF8String/nsCString for URLs. r=necko-reviewers,webidl,anti-tracking-reviewers,places-reviewers,jari,kershaw,janv,smaug,hsivonen 2024-04-04 11:49:57 +00:00
EarlyHintPreloader.h Bug 1875268 - Fix Early Hints Preload channel sharing aCallbacks with main request r=necko-reviewers,kershaw 2024-01-26 16:39:08 +00:00
EarlyHintRegistrar.cpp
EarlyHintRegistrar.h
EarlyHintsService.cpp Bug 1875268 - Fix Early Hints Preload channel sharing aCallbacks with main request r=necko-reviewers,kershaw 2024-01-26 16:39:08 +00:00
EarlyHintsService.h Bug 1875268 - Fix Early Hints Preload channel sharing aCallbacks with main request r=necko-reviewers,kershaw 2024-01-26 16:39:08 +00:00
HPKEConfigManager.sys.mjs
http2_huffman_table.txt
Http2Compression.cpp Bug 1755186 - HpackDynamicTableReporter::CollectReports should hold a mutex r=necko-reviewers,jesup 2024-02-12 11:22:32 +00:00
Http2Compression.h Bug 1755186 - HpackDynamicTableReporter::CollectReports should hold a mutex r=necko-reviewers,jesup 2024-02-12 11:22:32 +00:00
Http2HuffmanIncoming.h
Http2HuffmanOutgoing.h
Http2Push.cpp
Http2Push.h
Http2Session.cpp Bug 1895005 - Remove network.http.originextension pref r=gregp,necko-reviewers,kershaw 2024-05-15 20:43:20 +00:00
Http2Session.h
Http2Stream.cpp
Http2Stream.h
Http2StreamBase.cpp
Http2StreamBase.h
Http2StreamTunnel.cpp Bug 1848013 - Do not call HandleTunnelResponse for a tunnel connection created for WebSocket, r=necko-reviewers,valentin 2023-12-13 15:07:21 +00:00
Http2StreamTunnel.h Bug 1848013 - Do not call HandleTunnelResponse for a tunnel connection created for WebSocket, r=necko-reviewers,valentin 2023-12-13 15:07:21 +00:00
Http3Session.cpp Bug 1873263 - Disable 0RTT when servCertHashes is presented, r=necko-reviewers,valentin 2024-03-05 10:39:29 +00:00
Http3Session.h
Http3Stream.cpp Bug 1865394 - added urgency and incremental to request header in netmonitor. r=necko-reviewers,extension-reviewers,devtools-reviewers,valentin,robwu,bomsy,webdriver-reviewers,whimboo 2024-03-21 14:29:26 +00:00
Http3Stream.h Bug 1865394 - added urgency and incremental to request header in netmonitor. r=necko-reviewers,extension-reviewers,devtools-reviewers,valentin,robwu,bomsy,webdriver-reviewers,whimboo 2024-03-21 14:29:26 +00:00
Http3StreamBase.h Bug 1881490 - Don't insert the same stream into TX queue, r=necko-reviewers,jesup 2024-02-28 20:34:40 +00:00
Http3WebTransportSession.cpp Bug 1892325 - Introduce WebTransportSessionEventListenerInternal, r=nika 2024-04-22 08:57:42 +00:00
Http3WebTransportSession.h
Http3WebTransportStream.cpp Bug 1872496 - WebTransport: Fix WebTransport's stream closure. r=jesup,necko-reviewers 2024-02-26 13:26:06 +00:00
Http3WebTransportStream.h
HttpAuthUtils.cpp
HttpAuthUtils.h
HttpBackgroundChannelChild.cpp
HttpBackgroundChannelChild.h
HttpBackgroundChannelParent.cpp
HttpBackgroundChannelParent.h
HttpBaseChannel.cpp Bug 1896150 - Add RenderBlockingStatusType to the PerformanceResourceTiming Interface, r=emilio,necko-reviewers 2024-05-15 12:57:05 +00:00
HttpBaseChannel.h Bug 1896150 - Add RenderBlockingStatusType to the PerformanceResourceTiming Interface, r=emilio,necko-reviewers 2024-05-15 12:57:05 +00:00
HttpChannelChild.cpp Bug 1895198 - Add ExplicitSetUploadStreamLength to HttpChannelChild and move LoadWasOpened assert r=valentin,necko-reviewers 2024-05-06 12:00:46 +00:00
HttpChannelChild.h Bug 1895198 - Add ExplicitSetUploadStreamLength to HttpChannelChild and move LoadWasOpened assert r=valentin,necko-reviewers 2024-05-06 12:00:46 +00:00
HttpChannelParams.ipdlh
HttpChannelParent.cpp Bug 1874132 - remove auth headers from preflight request for cross origin requests. r=necko-reviewers,valentin 2024-03-18 08:48:10 +00:00
HttpChannelParent.h Bug 1849864 - Don't recalculate the userAgent header if it has been modified. r=tjr,jesup,necko-reviewers,devtools-reviewers 2024-01-17 13:18:21 +00:00
HttpConnectionBase.cpp
HttpConnectionBase.h
HttpConnectionMgrChild.cpp
HttpConnectionMgrChild.h
HttpConnectionMgrParent.cpp
HttpConnectionMgrParent.h
HttpConnectionMgrShell.h
HttpConnectionUDP.cpp
HttpConnectionUDP.h
HttpInfo.cpp
HttpInfo.h
HttpLog.h
HTTPSRecordResolver.cpp
HTTPSRecordResolver.h
HttpTrafficAnalyzer.cpp
HttpTrafficAnalyzer.h
HttpTrafficAnalyzer.inc
HttpTransactionChild.cpp
HttpTransactionChild.h
HttpTransactionParent.cpp
HttpTransactionParent.h
HttpTransactionShell.h
HttpWinUtils.cpp
HttpWinUtils.h
InterceptedHttpChannel.cpp Bug 1577829 - Set the service worker launch timings r=edenchuang,necko-reviewers,jesup 2023-12-13 13:15:12 +00:00
InterceptedHttpChannel.h Bug 1577829 - Expose service worker timings in the parent process r=edenchuang,necko-reviewers 2023-12-12 07:31:40 +00:00
make_incoming_tables.py
make_outgoing_tables.py
metrics.yaml Bug 1877839 - Migrate GVST metrics in the network namespace to pure glean r=chutten,necko-reviewers,valentin 2024-02-08 14:36:14 +00:00
MockHttpAuth.cpp
MockHttpAuth.h
moz.build Bug 1873263 - WebTransport: Fix serverCertificateHashes Implementation r=kershaw,necko-reviewers,keeler 2024-03-05 10:39:29 +00:00
NetworkMarker.cpp
NetworkMarker.h
nsAHttpConnection.h
nsAHttpTransaction.h
nsCORSListenerProxy.cpp Bug 1874132 - remove auth headers from preflight request for cross origin requests. r=necko-reviewers,valentin 2024-03-18 08:48:10 +00:00
nsCORSListenerProxy.h Bug 1874132 - remove auth headers from preflight request for cross origin requests. r=necko-reviewers,valentin 2024-03-18 08:48:10 +00:00
nsHttp.cpp Bug 1753204 - Retry without 0-RTT after SSL_ERROR_HANDSHAKE_UNEXPECTED_ALERT r=necko-reviewers,valentin 2024-02-29 08:00:48 +00:00
nsHttp.h Bug 1753204 - Retry without 0-RTT after SSL_ERROR_HANDSHAKE_UNEXPECTED_ALERT r=necko-reviewers,valentin 2024-02-29 08:00:48 +00:00
nsHttpActivityDistributor.cpp
nsHttpActivityDistributor.h
nsHttpAtomList.h Bug 1848013 - Do not call HandleTunnelResponse for a tunnel connection created for WebSocket, r=necko-reviewers,valentin 2023-12-13 15:07:21 +00:00
nsHttpAuthCache.cpp
nsHttpAuthCache.h
nsHttpAuthManager.cpp
nsHttpAuthManager.h
nsHttpBasicAuth.cpp
nsHttpBasicAuth.h
nsHttpChannel.cpp Bug 1890554 - Use ProxyInfo::TRANSPARENT_PROXY_RESOLVES_HOST flag in nsHttpChannel::GetProxyDNSStrategy r=manuel,necko-reviewers,kershaw 2024-05-17 14:07:19 +00:00
nsHttpChannel.h Backed out changeset 8abbf422db5c (bug 1894995) for causing bustage on nsHttpChannel.cpp CLOSED TREE 2024-05-17 12:52:02 +03:00
nsHttpChannelAuthProvider.cpp Bug 1805666 - Do not sort challenges if authentication is already in progress r=necko-reviewers,kershaw 2024-05-15 08:16:15 +00:00
nsHttpChannelAuthProvider.h
nsHttpChunkedDecoder.cpp
nsHttpChunkedDecoder.h
nsHttpConnection.cpp Bug 1871082 - Remove unnecessary commented out TEST_RESTART_LOGIC code r=edgul,necko-reviewers,valentin 2024-05-03 19:38:24 +00:00
nsHttpConnection.h Bug 1848013 - Do not call HandleTunnelResponse for a tunnel connection created for WebSocket, r=necko-reviewers,valentin 2023-12-13 15:07:21 +00:00
nsHttpConnectionInfo.cpp Bug 1873263 - WebTransport: Fix serverCertificateHashes Implementation r=kershaw,necko-reviewers,keeler 2024-03-05 10:39:29 +00:00
nsHttpConnectionInfo.h Bug 1873263 - WebTransport: Fix serverCertificateHashes Implementation r=kershaw,necko-reviewers,keeler 2024-03-05 10:39:29 +00:00
nsHttpConnectionMgr.cpp Bug 1895535 - Disable fast fastback and connection coalescing for WebTransport, r=necko-reviewers,valentin 2024-05-07 19:53:40 +00:00
nsHttpConnectionMgr.h Bug 1873263 - WebTransport: Fix serverCertificateHashes Implementation r=kershaw,necko-reviewers,keeler 2024-03-05 10:39:29 +00:00
nsHttpDigestAuth.cpp Bug 1870579 - Use PK11_GenerateRandom to generate random number, r=necko-reviewers,valentin 2024-03-18 21:51:14 +00:00
nsHttpDigestAuth.h
nsHttpHandler.cpp Backed out 2 changesets (bug 1711622) for causing reftest failures on accept-image-catchall.html. CLOSED TREE 2024-05-20 16:59:04 +03:00
nsHttpHandler.h Bug 1895005 - Remove network.http.originextension pref r=gregp,necko-reviewers,kershaw 2024-05-15 20:43:20 +00:00
nsHttpHeaderArray.cpp Bug 1877405 - Adding a eVarietyRequestEnforceDefault to nsHttpHeaderArray::HeaderVariety r=necko-reviewers,devtools-reviewers,bomsy,kershaw 2024-01-31 22:09:11 +00:00
nsHttpHeaderArray.h Bug 1877405 - Adding a eVarietyRequestEnforceDefault to nsHttpHeaderArray::HeaderVariety r=necko-reviewers,devtools-reviewers,bomsy,kershaw 2024-01-31 22:09:11 +00:00
nsHttpNTLMAuth.cpp
nsHttpNTLMAuth.h
nsHttpRequestHead.cpp
nsHttpRequestHead.h
nsHttpResponseHead.cpp Backed out 2 changesets (bug 1895075) for causing mochitest failures on test_block_script_wrong_mime.html CLOSED TREE 2024-05-14 19:34:32 +03:00
nsHttpResponseHead.h Backed out 2 changesets (bug 1895075) for causing mochitest failures on test_block_script_wrong_mime.html CLOSED TREE 2024-05-14 19:34:32 +03:00
nsHttpTransaction.cpp Bug 1895535 - Disable fast fastback and connection coalescing for WebTransport, r=necko-reviewers,valentin 2024-05-07 19:53:40 +00:00
nsHttpTransaction.h Bug 1877525 - Consider adding profiler markers at nsHttpConnectionMgr::ProcessNewTransaction and ::DispatchTransaction r=necko-reviewers,valentin 2024-05-03 12:34:58 +00:00
nsIBackgroundChannelRegistrar.idl
nsIBinaryHttp.idl
nsICorsPreflightCallback.h
nsIEarlyHintObserver.idl
nsIHttpActivityObserver.idl Bug 1881863 - Part 1: Standardize on boolean over bool in xpidl, r=xpcom-reviewers,necko-reviewers,valentin,extension-reviewers,application-update-reviewers,media-playback-reviewers,credential-management-reviewers,search-reviewers,anti-tracking-reviewers,places-reviewers,nalexander,emilio,zombie,sgalich,karlt,lina,Standard8 2024-04-04 18:45:21 +00:00
nsIHttpAuthenticableChannel.idl
nsIHttpAuthenticator.idl
nsIHttpAuthManager.idl Bug 1881863 - Part 1: Standardize on boolean over bool in xpidl, r=xpcom-reviewers,necko-reviewers,valentin,extension-reviewers,application-update-reviewers,media-playback-reviewers,credential-management-reviewers,search-reviewers,anti-tracking-reviewers,places-reviewers,nalexander,emilio,zombie,sgalich,karlt,lina,Standard8 2024-04-04 18:45:21 +00:00
nsIHttpChannel.idl Bug 1892440 - Expose RequestObserversCalled attribute in nsIHttpChannel r=valentin,necko-reviewers 2024-04-19 18:50:18 +00:00
nsIHttpChannelAuthProvider.idl
nsIHttpChannelChild.idl
nsIHttpChannelInternal.idl Bug 1892481 - More consistently enforce noscript and builtinclass in xpidl, r=xpcom-reviewers,necko-reviewers,valentin,media-playback-reviewers,mccr8,padenot 2024-04-22 18:19:58 +00:00
nsIHttpHeaderVisitor.idl
nsIHttpProtocolHandler.idl Bug 1884645 - Add NS_HTTP_ON_BEFORE_STOP_REQUEST_TOPIC r=necko-reviewers,kershaw 2024-03-13 11:50:06 +00:00
nsIObliviousHttp.idl
nsIObliviousHttpChannel.idl
nsIRaceCacheWithNetwork.idl
nsITlsHandshakeListener.idl
nsIWellKnownOpportunisticUtils.idl Bug 1881863 - Part 1: Standardize on boolean over bool in xpidl, r=xpcom-reviewers,necko-reviewers,valentin,extension-reviewers,application-update-reviewers,media-playback-reviewers,credential-management-reviewers,search-reviewers,anti-tracking-reviewers,places-reviewers,nalexander,emilio,zombie,sgalich,karlt,lina,Standard8 2024-04-04 18:45:21 +00:00
nsServerTiming.cpp
nsServerTiming.h
NullHttpChannel.cpp Bug 1896150 - Add RenderBlockingStatusType to the PerformanceResourceTiming Interface, r=emilio,necko-reviewers 2024-05-15 12:57:05 +00:00
NullHttpChannel.h
NullHttpTransaction.cpp
NullHttpTransaction.h
ObliviousHttpChannel.cpp Bug 1892440 - Expose RequestObserversCalled attribute in nsIHttpChannel r=valentin,necko-reviewers 2024-04-19 18:50:18 +00:00
ObliviousHttpChannel.h
ObliviousHttpService.cpp
ObliviousHttpService.h
OpaqueResponseUtils.cpp
OpaqueResponseUtils.h
PAltDataOutputStream.ipdl
PAltService.ipdl
PAltSvcTransaction.ipdl
ParentChannelListener.cpp
ParentChannelListener.h
PBackgroundDataBridge.ipdl Bug 1867360 - Require toplevel protocols to specify which processes they expect to be bound in, r=decoder,ipc-reviewers,necko-reviewers,media-playback-reviewers,profiler-reviewers,win-reviewers,aosmond,rkraesig,mccr8,kershaw 2024-01-18 23:07:18 +00:00
PendingTransactionInfo.cpp
PendingTransactionInfo.h
PendingTransactionQueue.cpp
PendingTransactionQueue.h
PHttpBackgroundChannel.ipdl
PHttpChannel.ipdl
PHttpChannelParams.h Bug 1877405 - Adding a eVarietyRequestEnforceDefault to nsHttpHeaderArray::HeaderVariety r=necko-reviewers,devtools-reviewers,bomsy,kershaw 2024-01-31 22:09:11 +00:00
PHttpConnectionMgr.ipdl
PHttpTransaction.ipdl
PSpdyPush.h
QuicSocketControl.cpp
QuicSocketControl.h
README
SpeculativeTransaction.cpp
SpeculativeTransaction.h
TimingStruct.h
TlsHandshaker.cpp
TlsHandshaker.h
TLSTransportLayer.cpp
TLSTransportLayer.h
TRRServiceChannel.cpp
TRRServiceChannel.h
WebTransportCertificateVerifier.cpp Bug 1873263 - WebTransport: Fix serverCertificateHashes Implementation r=kershaw,necko-reviewers,keeler 2024-03-05 10:39:29 +00:00
WebTransportCertificateVerifier.h Bug 1873263 - WebTransport: Fix serverCertificateHashes Implementation r=kershaw,necko-reviewers,keeler 2024-03-05 10:39:29 +00:00
WellKnownOpportunisticUtils.sys.mjs

                                                        Darin Fisher
                                                        darin@netscape.com
                                                        8/8/2001

                            HTTP DESIGN NOTES


CLASS BREAKDOWN

  nsHttpHandler
    - implements nsIProtocolHandler
    - manages preferences
    - owns the authentication cache
    - holds references to frequently used services

  nsHttpChannel
    - implements nsIHttpChannel
    - talks to the cache
    - initiates http transactions
    - processes http response codes
    - intercepts progress notifications

  nsHttpConnection
    - implements nsIStreamListener & nsIStreamProvider
    - talks to the socket transport service
    - feeds data to its transaction object
    - routes progress notifications

  nsHttpConnectionInfo
    - identifies a connection

  nsHttpTransaction
    - implements nsIRequest
    - encapsulates a http request and response
    - parses incoming data

  nsHttpChunkedDecoder
    - owned by a transaction
    - removes chunked decoding

  nsHttpRequestHead
    - owns a nsHttpHeaderArray
    - knows how to fill a request buffer

  nsHttpResponseHead
    - owns a nsHttpHeaderArray
    - knows how to parse response lines
    - performs common header manipulations/calculations

  nsHttpHeaderArray
    - stores http "<header>:<value>" pairs

  nsHttpAuthCache
    - stores authentication credentials for http auth domains

  nsHttpBasicAuth
    - implements nsIHttpAuthenticator
    - generates BASIC auth credentials from user:pass


ATOMS

  nsHttp:: (header namespace)

  eg. nsHttp::Content_Length


TRANSACTION MODEL

  InitiateTransaction -> ActivateConnection -> AsyncWrite, AsyncRead

  The channel creates transactions, and passes them to the handler via
  InitiateTransaction along with a nsHttpConnectionInfo object
  identifying the requested connection.  The handler either dispatches
  the transaction immediately or queues it up to be dispatched later,
  depending on whether or not the limit on the number of connections
  to the requested server has been reached.  Once the transaction can
  be run, the handler looks for an idle connection or creates a new
  connection, and then (re)activates the connection, assigning it the
  new transaction.

  Once activated the connection ensures that it has a socket transport,
  and then calls AsyncWrite and AsyncRead on the socket transport.  This
  begins the process of talking to the server.  To minimize buffering,
  socket transport thread-proxying is completely disabled (using the flags
  DONT_PROXY_LISTENER | DONT_PROXY_PROVIDER | DONT_PROXY_OBSERVER with
  both AsyncWrite and AsyncRead).  This means that the nsHttpConnection's
  OnStartRequest, OnDataAvailable, OnDataWritable, and OnStopRequest
  methods will execute on the socket transport thread.

  The transaction defines (non-virtual) OnDataReadable, OnDataWritable, and
  OnStopTransaction methods, which the connection calls in response to
  its OnDataAvailable, OnDataWritable, and OnStopRequest methods, respectively.
  The transaction owns a nsStreamListenerProxy created by the channel, which
  it uses to transfer data from the socket thread over to the client's thread.
  To mimize buffering, the transaction implements nsIInputStream, and passes
  itself to the stream listener proxy's OnDataAvailable.  In this way, we
  have effectively wedged the response parsing between the socket and the
  thread proxy's buffer.  When read, the transaction turns around and reads
  from the socket using the buffer passed to it.  The transaction scans the
  buffer for headers, removes them as they are detected, and copies the headers
  into its nsHttpResponseHead object.  The rest of the data remains in the
  buffer, and is proxied over to the client's thread to be handled first by the
  http channel and eventually by the client.

  There are several other major design factors, including:

    - transaction cancelation
    - progress notification
    - SSL tunneling
    - chunked decoding
    - thread safety
    - premature EOF detection and transaction restarting
    - pipelining (not yet implemented)


CACHING

<EOF>