wweir undefined

Follow

wweir undefined

361 days ago

HTTP/3 does not use server-initiated bidirectional streams, though an extension could define a use for these streams. Clients MUST treat receipt of a server-initiated bidirectional stream as a connection error of type H3_STREAM_CREATION_ERROR unless such an extension has been negotiated.

Hypertext Transfer Protocol Version 3 (HTTP/3) draft-ietf-quic-http-latest

quicwg.org

wweir undefined

362 days ago

As in previous versions of HTTP, field names are strings containing a subset of ASCII characters that are compared in a case-insensitive fashion. Properties of HTTP field names and values are discussed in more detail in Section 4.3 of [SEMANTICS]. As in HTTP/2, characters in field names MUST be converted to lowercase prior to their encoding. A request or response containing uppercase characters in field names MUST be treated as malformed (Section 4.1.3).

Hypertext Transfer Protocol Version 3 (HTTP/3) draft-ietf-quic-http-latest

quicwg.org

wweir undefined

362 days ago

An HTTP request/response exchange fully consumes a client-initiated bidirectional QUIC stream. After sending a request, a client MUST close the stream for sending. Unless using the CONNECT method (see Section 4.2), clients MUST NOT make stream closure dependent on receiving a response to their request. After sending a final response, the server MUST close the stream for sending. At this point, the QUIC stream is fully closed.

Hypertext Transfer Protocol Version 3 (HTTP/3) draft-ietf-quic-http-latest

quicwg.org

wweir undefined

363 days ago

A client sends an HTTP request on a client-initiated bidirectional QUIC stream. A client MUST send only a single request on a given stream. A server sends zero or more interim HTTP responses on the same stream as the request

Hypertext Transfer Protocol Version 3 (HTTP/3) draft-ietf-quic-http-latest

quicwg.org

wweir undefined

363 days ago

Clients SHOULD NOT open more than one HTTP/3 connection to a given host and port pair, where the host is derived from a URI, a selected alternative service [ALTSVC], or a configured proxy. A client MAY open multiple connections to the same IP address and UDP port using different transport or TLS configurations but SHOULD avoid creating multiple connections with the same configuration.¶

Servers are encouraged to maintain open connections for as long as possible but are permitted to terminate idle connections if necessary. When either endpoint chooses to close the HTTP/3 session, the terminating endpoint SHOULD first send a GOAWAY frame (Section 5.2) so that both endpoints can reliably determine whether previously sent frames have been processed and gracefully complete or terminate any necessary remaining tasks.

Hypertext Transfer Protocol Version 3 (HTTP/3) draft-ietf-quic-http-latest

quicwg.org

wweir undefined

363 days ago

An HTTP origin advertises the availability of an equivalent HTTP/3 endpoint via the Alt-Svc HTTP response header field or the HTTP/2 ALTSVC frame ([ALTSVC]), using the ALPN token defined in Section 3.3.¶

For example, an origin could indicate in an HTTP response that HTTP/3 was available on UDP port 50781 at the same hostname by including the following header field:

Alt-Svc: h3=":50781"
On receipt of an Alt-Svc record indicating HTTP/3 support, a client MAY attempt to establish a QUIC connection to the indicated host and port and, if successful, send HTTP requests using the mapping described in this document

Hypertext Transfer Protocol Version 3 (HTTP/3) draft-ietf-quic-http-latest

quicwg.org

wweir undefined

1178 days ago

线程A释放一个锁,实质上是线程A向接下来将要获取这个锁的某个线程发出了(线程A对共享变量所做修改的)消息。
线程B获取一个锁,实质上是线程B接收了之前某个线程发出的(在释放这个锁之前对共享变量所做修改的)消息。
线程A释放锁,随后线程B获取这个锁,这个过程实质上是线程A通过主内存向线程B发送消息。

深入理解Java内存模型(五)——锁

infoq.com

wweir undefined

1178 days ago

在每个volatile写操作的前面插入一个StoreStore屏障。
在每个volatile写操作的后面插入一个StoreLoad屏障。
在每个volatile读操作的后面插入一个LoadLoad屏障。
在每个volatile读操作的后面插入一个LoadStore屏障。

深入理解Java内存模型(四)——volatile

infoq.com

wweir undefined

1178 days ago

在一些32位的处理器上,如果要求对64位数据的读/写操作具有原子性,会有比较大的开销。为了照顾这种处理器,java语言规范鼓励但不强求JVM对64位的long型变量和double型变量的读/写具有原子性。当JVM在这种处理器上运行时,会把一个64位long/ double型变量的读/写操作拆分为两个32位的读/写操作来执行。这两个32位的读/写操作可能会被分配到不同的总线事务中执行,此时对这个64位变量的读/写将不具有原子性。

深入理解Java内存模型(三)——顺序一致性

infoq.com

wweir undefined

1178 days ago

在java中,所有实例域、静态域和数组元素存储在堆内存中

深入理解Java内存模型(一)——基础

infoq.com

wweir undefined

1178 days ago

在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。

深入理解Java内存模型(一)——基础

infoq.com

wweir undefined

1191 days ago

Furthermore, Dynamo doesn't handle partitions in the manner that a system enforcing a strong consistency model would: namely, writes are allowed on both sides of a partition, which means that for at least some time the system does not act as a single copy. So calling R + W > N "strongly consistent" is misleading; the guarantee is merely probabilistic - which is not what strong consistency refers to.

Distributed systems for fun and profit

book.mixu.net

Like this set of items on Pocket? Share with friends.