SlideShare a Scribd company logo
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Developing the fastest
HTTP/2 server
DeNA Co., Ltd.
Kazuho Oku
1
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Who am I?
n  Kazuho Oku
n  Major works:
⁃  Palmscape / Xiino (web browser for Palm OS)
•  awarded M.I.T. TR 100/2002
⁃  Mitoh project 2004 super creator
⁃  Q4M (message queue plugin for MySQL)
•  MySQL Conference Community Awards 2011
⁃  H2O (HTTP/2 server)
•  Japan OSS Contribution Award 2015
2	Developing the fastest HTTP/2 server
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Background
3	Developing the fastest HTTP/2 server
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Responsiveness is important
4	Developing the fastest HTTP/2 server
source:	h@p://radar.oreilly.com/2009/06/bing-and-google-agree-slow-pag.html
n  500ms increase → -1.2% revenue
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Increasing size and # of requests
5	Developing the fastest HTTP/2 server
source:	h@p://h@parchive.org/trends.php?s=All&minlabel=Aug+1+2011&maxlabel=Aug+1+2015#bytesTotal&reqTotal
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Bandwidth is also increasing
n  end-usersʼ B/W increase 50% every year (Nielsenʼs
Law)
6	Developing the fastest HTTP/2 server
source:	h@p://www.nngroup.com/arRcles/law-of-bandwidth/
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
More bandwidth doesnʼt matter
7	Developing the fastest HTTP/2 server
source:	More	Bandwidth	Doesn't	Ma@er	-	2011	Mike	Belshe	(Google)
* effective B/W reaches ceiling at around 1.6Mbps
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Latency is the new bottleneck
8	Developing the fastest HTTP/2 server
source:	More	Bandwidth	Doesn't	Ma@er	-	2011	Mike	Belshe	(Google)
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Latency cannot be optimized
n  latency = speed of light
⁃  round-trip bet. Japan and US: 80ms
n  mobile carriers have huge latency
⁃  LTE ~ 50ms
n  the Web is becoming more and more complex
9	Developing the fastest HTTP/2 server
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Web is becoming slower ... unless we do something.
10	Developing the fastest HTTP/2 server
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Solution: new protocol
11	Developing the fastest HTTP/2 server
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
HTTP/2!
12	Developing the fastest HTTP/2 server
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
The reasons HTTP/1.1 is slow
n  concurrency is too small
⁃  multiple round-trips required when issuing many
requests
n  no prioritization between. requests
⁃  can suspend HTML / image streams in favor of
CSS / JS
n  big request / response headers
⁃  typically hundreds of octets
⁃  becomes an overhead when issuing many reqs.
13	Developing the fastest HTTP/2 server
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
HTTP/2
n  RFC 7540 (2015/5)
⁃  based on SPDY by Google
n  key features:
⁃  binary protocol
⁃  header compression
⁃  multiplexing
⁃  prioritization
14	Developing the fastest HTTP/2 server
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Benchmark
n  red bar: time spent until first-paint
n  big difference bet. server implementations
n  reason: quality of prioritization logic
n  H2O shows the true potential of HTTP/2
15	Developing the fastest HTTP/2 server
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Have we reached the limit?
16	Developing the fastest HTTP/2 server
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Letʼs consider what would be the ideal HTTP flow.
17	Developing the fastest HTTP/2 server
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
TCP slow start
n  Initial Congestion Window (IW)=10
⁃  only 10 packets can be sent in first RTT
⁃  used to be IW=3
n  window increase: 1.5x/RTT
18	Developing the fastest HTTP/2 server
0	
100,000	
200,000	
300,000	
400,000	
500,000	
600,000	
700,000	
800,000	
1	 2	 3	 4	 5	 6	 7	 8	
bytes	transmi,ed
RTT
TCP	slow	start	(IW10,	MSS1460)
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Flow of the ideal HTTP
n  fastest within the limits of TCP/IP
n  receive a request 0-RTT, and:
⁃  first send CSS/JS*
⁃  then send the HTML
⁃  then send the images*
*: but only the ones not cached by the browser
19	Developing the fastest HTTP/2 server
client server
1	RTT
request
response
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
The reality in HTTP/2
n  TCP establishment: +1 RTT
n  TLS handshake: +2 RTT*
n  HTML fetch: +1 RTT
n  JS,CSS fetch: +2 RTT**
n  Total: 6 RTT
*: 1 RTT on reconnection
**: servers often cannot switch to sending JS,CSS
instantly, due to the output buffered in TCP send buffer
20	Developing the fastest HTTP/2 server
client server
1	RTT
TCP	SYN
TCP	SYNACK
TLS	Handshake
TLS	Handshake
TLS	Handshake
TLS	Handshake
GET	/
HTML
GET	css,js
css,	js
〜〜
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Ongoing optimizations
n  TCP Fast Open
⁃  connection establishment in 0 RTT
n  TLS 1.3
⁃  initial handshake complete in 1 RTT
⁃  resumption in 0 RTT
n  what can be done in the HTTP/2 layer?
21	Developing the fastest HTTP/2 server
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Further optimizations in HTTP/2 layer
n  optimize TCP for responsiveness
n  Cache-aware server push
22	Developing the fastest HTTP/2 server
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Optimizing TCP for responsiveness
23	Developing the fastest HTTP/2 server
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Typical sequence of HTTP/2
24	Developing the fastest HTTP/2 server
HTTP/2 200 OK
<!DOCTYPE HTML>
…
<SCRIPT SRC=”jquery.js”>
…
client server
GET /
GET /jquery.js
need	to	switch	sending	from	HTML	
to	JS	at	this	very	moment	
(means	that	amount	of	data	sent	in	
*	must	be	smaller	than	IW)
1	RTT
*
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Buffering in TCP and TLS layer
25	Developing the fastest HTTP/2 server
TCP	send	buffer
CWND	
unacked	 poll	threshold	
BIO	buf.
// ordinary code (non-blocking)
while (SSL_write(…) != SSL_ERR_WANT_WRITE)
;
TLS	Records
sent	immediately	 not	immediately	sent	
HTTP/2	frames
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Why do we have buffers?
26	Developing the fastest HTTP/2 server
n  TCP send buffer:
⁃  reduce ping-pong bet. kernel and application
n  BIO buffer:
⁃  for data that couldnʼt be stored in TCP send buffer
TCP	send	buffer
CWND	
unacked	 poll	threshold	
BIO	buf.
TLS	Records
sent	immediately	 not	immediately	sent	
HTTP/2	frames
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Improvement: poll-then-write
27	Developing the fastest HTTP/2 server
TCP	send	buffer
CWND	
unacked	 poll	threshold	
// only call SSL_write when polls notifies the app.
while (poll_for_write(fd) == SOCKET_IS_READY)
SSL_write(…);
TLS	Records
sent	immediately	 not	immediately	sent	
HTTP/2	frames
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Adjust poll threshold
28	Developing the fastest HTTP/2 server
TCP	send	buffer
CWND	
unacked	 poll	threshold	
n  set poll threshold to the end of CWND?
⁃  setsockopt(TCP_NOTSENT_LOWAT)
⁃  in linux, the minimum is CWND + 1 octet
•  becomes unstable when set to CWND + 0
TLS	Records
sent	immediately	 not	immediately	sent	
HTTP/2	frames
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Adjust poll threshold
29	Developing the fastest HTTP/2 server
CWND	
unacked	 poll	threshold	
// only call SSL_write when polls notifies the app.
while (poll_for_write(fd) == SOCKET_IS_READY)
SSL_write(…);
TLS	Records
sent	immediately	 not	immediately	sent	
HTTP/2	frames
TCP	send	buffer
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Further improvement: read TCP states
30	Developing the fastest HTTP/2 server
CWND	
unacked	 poll	threshold	
// calc size of data to send by calling getsockopt(TCP_INFO)
if (poll_for_write(fd) == SOCKET_IS_READY) {
capacity = CWND + unacked + ONE_MSS - TLS_overhead;
SSL_write(prepare_http2_frames(capacity));
}
TLS	Records
sent	immediately	 not	immediately	sent	
HTTP/2	frames
TCP	send	buffer
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Issues in the proposed approach
n  increased delay bet. ACK recv. → data send
⁃  leads to slower peak speed
⁃  reason:
•  traditional approach: completes within kernel
•  this approach: application needs to be notified to
generate new data
n  solution:
⁃  use the approach only when necessary
•  i.e. when RTT is big and CWND is small
•  increased delay can be ignored if: delay << RTT
31	Developing the fastest HTTP/2 server
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Code for calculating size of data to send
size_t get_suggested_write_size() {
getsockopt(fd, IPPROTO_TCP, TCP_INFO, &tcp_info, sizeof(tcp_info));
if (tcp_info.tcpi_rtt < min_rtt || tcp_info.tcpi_snd_cwnd > max_cwnd)
return UNKNOWN;
switch (SSL_get_current_cipher(ssl)->id) {
case TLS1_CK_RSA_WITH_AES_128_GCM_SHA256:
case …:
tls_overhead = 5 + 8 + 16;
break;
default:
return UNKNOWN;
}
packets_sendable = tcp_info.tcpi_snd_cwnd > tcp_info.tcpi_unacked ?
tcp_info.tcpi_snd_cwnd - tcp_info.tcpi_unacked : 0;
return (packets_sendable + 1) * (tcp_info.tcpi_snd_mss - tls_overhead);
}
32	Developing the fastest HTTP/2 server
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Benchmark
33	Developing the fastest HTTP/2 server
n  conditions:
⁃  server in Ireland, client in Japan (RTT 250ms)
⁃  load tiny js at the top of a large HTML
n  result: delay decreased from 511ms to 250ms
⁃  i.e. JS fetch latency was 2RTT, became 1 RTT
•  similar results in other environments
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Conclusion
n  near-optimal result can be achieved
⁃  by adjusting poll threshold and reading TCP
states
⁃  1-packet overhead due to restriction in Linux
kernel
n  1-RTT improvement in H2O
⁃  estimated 1-RTT improvement per the depth of
the load graph
34	Developing the fastest HTTP/2 server
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Same problem exists with load balancers
n  L4 L/B or TLS terminator also act as buffers
⁃  impact bigger than that of TCP send buffer of
httpd
n  solution:
⁃  best: donʼt use L/B
⁃  next to best: implement mitigations in L/B
⁃  long-term: TCP migration + L3 NAT or DSR
•  i.e. accept in L/B, then transfer the connection to
HTTP/2 server
35	Developing the fastest HTTP/2 server
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Cache-aware Server Push
36	Developing the fastest HTTP/2 server
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
What is server-push?
n  start the delivery of CSS / JS when receiving a
request for HTML
n  effect:
⁃  1 RTT reduction, or more
37	Developing the fastest HTTP/2 server
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Use-case: conceal request process time
n  ex. RTT=50ms, process time=200ms
38	Developing the fastest HTTP/2 server
req.
process	request
push-asset
HTML
push-asset
push-asset
push-asset
req.
process	request
asset
HTML
asset
asset
asset
req.
450ms	(5	RTT	+	processing	=me)
250ms	(1	RTT	+	processing	=me)
without	push with	push
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Use-case: conceal network distance
n  CDNsʼ use-case
⁃  utilize the conn. while waiting for app. response
⁃  side-effect: reduce the number of app DCs
39	Developing the fastest HTTP/2 server
req.
push-asset
HTML
push-asset
push-asset
push-asset
client edge	server	(CDN) app.	server
req.
HTML
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Issues of server-push
n  how to determine if a resource is already cached
⁃  shouldnʼt push a resource already in cache
•  waste of bandwidth (and time)
⁃  canʼt issue a request to identify the cache state
•  since it would waste 1 RTT we are trying to reduce!
40	Developing the fastest HTTP/2 server
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Cache-aware server push
n  experimental feature since H2O 1.5
n  create a digest of URLs found in browser cache
⁃  uses Golomb coded sets
•  space-efficient variant of bloom filter
n  server uses the digest to determine whether or not
to push
41	Developing the fastest HTTP/2 server
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Memo: fresh vs. stale
n  two states of a cached resource
n  fresh:
⁃  resource that can be used
⁃  example: Expires: Jan 1 2030
n  stale:
⁃  needs revalidation before use
•  i.e. issue GET with if-modified-since
42	Developing the fastest HTTP/2 server
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Generating a digest
1.  calc hashcode of URLs of every fresh cache
⁃  range: 0 .. #-of-URL / false-positive-rate
2.  sort the hashcodes, remove duplicates
3.  emit the first element using the following encoding:
1.  “value * FPR” using unary coding
2.  “value mod (1/false-positive-rate)” using binary
coding
4.  for every other element, emit the delta from
preceding element subtracted by one using the
encoding
5.  pad 1 up to the byte boundary
43	Developing the fastest HTTP/2 server
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Generating a digest
n  scenario:
⁃  FPR: 1/256
⁃  URLs of fresh resources in cache:
•  https://example.com/ecma.js
•  https://example.com/style.css
n  calc hash modulo 512: 0x3d, 0x16b
n  sort, remove dupes, and emit the delta:
⁃  0x3d → 0 00111101
⁃  0x16b - 0x3d - 1 → 0x12d → 10 00101101
⁃  padding → 111111
44	Developing the fastest HTTP/2 server
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Overhead of sending the digest
n  size: #-of-URLs * (1/log2(FPR) + 1.x) bits
n  1,400 URLs can be stored in 1 packet
⁃  when false-positive-rate set to 1/128
n  can raise FPR to cram more URLs
⁃  false-positive means the resource is not pushed,
browser can just pull it
⁃  pushing some of the required resources is better
than none
45	Developing the fastest HTTP/2 server
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Where to store the digest?
n  cookie
⁃  pros: runs on any browser, anytime
⁃  cons: digest becomes inaccurate
•  only the browser knows whatʼs in the browser cache
n  ServiceWorker (+ServiceWorker Cache)
⁃  pros: runs on Chrome, Firefox
⁃  cons: doesnʼt start until leaving the landing page
n  HTTP/2 frame
⁃  pros: minimal octets transferred
•  thanks to the knowledge of HTTP/2 connection
⁃  cons: needs to be implemented by browser developer
46	Developing the fastest HTTP/2 server
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Discussion at IETF
n  IETF 95 (April)
⁃  initial submission of the internet draft
•  co-author: Mark Nottingham (HTTP WG Chair)
⁃  defines the HTTP/2 frame
•  since itʼs the best way in the long-term
•  store the frame in headers / cookies for the short-
term
n  IETF 96, HTTP Workshop (July)
⁃  to define digest calculation of stale resources
47	Developing the fastest HTTP/2 server
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Handling stale resources
n  hash key changed to URL + Etag
⁃  anyone needs support for last-modified?
n  server uses URL + Etag of the resource to check the
digest
⁃  push the resource in case a match is not found
⁃  push 304 Not Modified in case a match is found
48	Developing the fastest HTTP/2 server
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Difficulties in pushing 304
n  Etag cannot always be obtained immediately
⁃  cannot build If-Match request header without
etag
⁃  the “request*” of a pushed resource SHOULD be
sent before the main response
n  proposed solution:
⁃  allow 304 against a non-conditional GET
*: in case of server-push, the server generates both request and response, sends
them to the client.
49	Developing the fastest HTTP/2 server
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Using server-push from Ruby
n  Link: rel=preload header
⁃  web server pushes the specified URL
HTTP/1.1 200 OK
Content-Type: text/html
Link: </style.css>; rel=preload # this header!!!
⁃  supported by:
•  H2O, nghttpx (nghttp2), mod_h2 (Apache)
⁃  patch for nginx exists
50	Developing the fastest HTTP/2 server
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
The issue with Link: rel=preload
n  cannot initiate push while processing the request
51	Developing the fastest HTTP/2 server
client HTTP/2	server Web	app.
GET	/
can’t	push	at	
this	moment
GET	/
200	OK	
Link:	…200	OK
process	request
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
1xx Early Metadata
52	Developing the fastest HTTP/2 server
n  send Link: rel=preload as interim response
⁃  application sends 1xx then processes the request
n  supported in H2O 2.1
n  might propose for standardization in IETF
GET / HTTP/1.1
Host: example.com
HTTP/1.1 1xx Early Metadata
Link: </style.css>; rel=preload
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
<!DOCTYPE HTML>
...
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Sending 1xx from Rack
n  in case of Unicorn:
Proc.new do |env|
env[”unicorn.socket”].write(
”HTTP/1.1 1xx Early Metadatarn” +
”Link: </style.js>; rel=preloadrn” +
”rn”);
# time-consuming operation ...
[ 200, [ ... ], [ ... ] ]
end
...we need to define the formal API
53	Developing the fastest HTTP/2 server
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Conclusion
54	Developing the fastest HTTP/2 server
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Conclusion
n  the Web has become faster with HTTP/2
n  HTTP/2 becomes fast as to the limit of TCP/IP with:
⁃  optimizing TCP for responsiveness
⁃  Cache Digest
⁃  1xx Early Metadata
55	Developing the fastest HTTP/2 server
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Q&A
n  Q. Can it be made faster than the limits o TCP/IP?
n  A. Yes!
⁃  shorten the RTT!
•  CDNsʼ approach
⁃  make DNS query part of TLS handshake
•  was part of TLS 1.3 draft (removed as too
premature)
⁃  fairness isnʼt a issue for a private network!
•  TCP optimizer for mobile carriers
56	Developing the fastest HTTP/2 server

More Related Content

What's hot (20)

PDF
gRPC - RPC rebirth?
Luís Barbosa
 
PDF
HTTP/2: What no one is telling you
Fastly
 
PDF
XDP in Practice: DDoS Mitigation @Cloudflare
C4Media
 
PDF
Deep dive into Coroutines on JVM @ KotlinConf 2017
Roman Elizarov
 
PDF
Why rust?
Mats Kindahl
 
PDF
Introduction to kotlin coroutines
NAVER Engineering
 
PDF
Monitoring Microservices
Weaveworks
 
PDF
How Triton can help to reverse virtual machine based software protections
Jonathan Salwan
 
PDF
Robert Kubis - gRPC - boilerplate to high-performance scalable APIs - code.t...
AboutYouGmbH
 
PDF
How to Build a High Performance Application with PHP and Swoole?
Albert Chen
 
PDF
Explore your prometheus data in grafana - Promcon 2018
Grafana Labs
 
PPT
Linux memory consumption
haish
 
PDF
Goroutineと channelから はじめるgo言語
Takuya Ueda
 
PPTX
HAProxy
Arindam Nayak
 
PDF
user Behavior Analysis with Session Windows and Apache Kafka's Streams API
confluent
 
PDF
Loki - like prometheus, but for logs
Juraj Hantak
 
PDF
P4, EPBF, and Linux TC Offload
Open-NFP
 
PPTX
Tutorial: Using GoBGP as an IXP connecting router
Shu Sugimoto
 
PDF
Siphon - Near Real Time Databus Using Kafka, Eric Boyd, Nitin Kumar
confluent
 
PPTX
哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌
Tun-Yu Chang
 
gRPC - RPC rebirth?
Luís Barbosa
 
HTTP/2: What no one is telling you
Fastly
 
XDP in Practice: DDoS Mitigation @Cloudflare
C4Media
 
Deep dive into Coroutines on JVM @ KotlinConf 2017
Roman Elizarov
 
Why rust?
Mats Kindahl
 
Introduction to kotlin coroutines
NAVER Engineering
 
Monitoring Microservices
Weaveworks
 
How Triton can help to reverse virtual machine based software protections
Jonathan Salwan
 
Robert Kubis - gRPC - boilerplate to high-performance scalable APIs - code.t...
AboutYouGmbH
 
How to Build a High Performance Application with PHP and Swoole?
Albert Chen
 
Explore your prometheus data in grafana - Promcon 2018
Grafana Labs
 
Linux memory consumption
haish
 
Goroutineと channelから はじめるgo言語
Takuya Ueda
 
HAProxy
Arindam Nayak
 
user Behavior Analysis with Session Windows and Apache Kafka's Streams API
confluent
 
Loki - like prometheus, but for logs
Juraj Hantak
 
P4, EPBF, and Linux TC Offload
Open-NFP
 
Tutorial: Using GoBGP as an IXP connecting router
Shu Sugimoto
 
Siphon - Near Real Time Databus Using Kafka, Eric Boyd, Nitin Kumar
confluent
 
哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌
Tun-Yu Chang
 

Similar to Developing the fastest HTTP/2 server (20)

PPTX
Recent Advances in HTTP, controlling them using ruby
Kazuho Oku
 
PDF
Programming TCP for responsiveness
Kazuho Oku
 
PDF
H2O - making the Web faster
Kazuho Oku
 
PPTX
Programming TCP for responsiveness
Kazuho Oku
 
PDF
Linux HTTPS/TCP/IP Stack for the Fast and Secure Web
All Things Open
 
PPTX
Introduction to HTTP/2
Ido Flatow
 
PDF
HTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 era
peychevi
 
PDF
Http2
Daniel Stenberg
 
PDF
So that was HTTP/2, what's next?
Daniel Stenberg
 
PPTX
Next generation web protocols
Daniel Austin
 
PPTX
HTML5, HTTP2, and You 1.1
Daniel Austin
 
PPT
Ethernet summit 2011_toe
intilop
 
PPTX
Introduction to HTTP/2
Ido Flatow
 
PPTX
Http/2
GeekNightHyderabad
 
PPTX
Lec 2.pptx
ahmedraed19
 
PDF
Primer to Browser Netwroking
Shuya Osaki
 
PPTX
Reconsider TCPdump for Modern Troubleshooting
Avi Networks
 
PDF
Стек Linux HTTPS/TCP/IP для защиты от HTTP-DDoS-атак
Positive Hack Days
 
PDF
Short Introduction to IPv6
Martin Schütte
 
PDF
Quick QUIC Technical Update (2017)
Taisuke Yamada
 
Recent Advances in HTTP, controlling them using ruby
Kazuho Oku
 
Programming TCP for responsiveness
Kazuho Oku
 
H2O - making the Web faster
Kazuho Oku
 
Programming TCP for responsiveness
Kazuho Oku
 
Linux HTTPS/TCP/IP Stack for the Fast and Secure Web
All Things Open
 
Introduction to HTTP/2
Ido Flatow
 
HTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 era
peychevi
 
So that was HTTP/2, what's next?
Daniel Stenberg
 
Next generation web protocols
Daniel Austin
 
HTML5, HTTP2, and You 1.1
Daniel Austin
 
Ethernet summit 2011_toe
intilop
 
Introduction to HTTP/2
Ido Flatow
 
Lec 2.pptx
ahmedraed19
 
Primer to Browser Netwroking
Shuya Osaki
 
Reconsider TCPdump for Modern Troubleshooting
Avi Networks
 
Стек Linux HTTPS/TCP/IP для защиты от HTTP-DDoS-атак
Positive Hack Days
 
Short Introduction to IPv6
Martin Schütte
 
Quick QUIC Technical Update (2017)
Taisuke Yamada
 
Ad

More from Kazuho Oku (20)

PDF
HTTP/2で 速くなるとき ならないとき
Kazuho Oku
 
PDF
QUIC標準化動向 〜2017/7
Kazuho Oku
 
PDF
HTTP/2の課題と将来
Kazuho Oku
 
PDF
TLS 1.3 と 0-RTT のこわ〜い話
Kazuho Oku
 
PPTX
TLS & LURK @ IETF 95
Kazuho Oku
 
PPTX
HTTPとサーバ技術の最新動向
Kazuho Oku
 
PPTX
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
Kazuho Oku
 
PPTX
Cache aware-server-push in H2O version 1.5
Kazuho Oku
 
PDF
HTTP/2時代のウェブサイト設計
Kazuho Oku
 
PDF
H2O - making HTTP better
Kazuho Oku
 
PPTX
JSON SQL Injection and the Lessons Learned
Kazuho Oku
 
PPTX
JSX 速さの秘密 - 高速なJavaScriptを書く方法
Kazuho Oku
 
PPTX
JSX の現在と未来 - Oct 26 2013
Kazuho Oku
 
PPTX
Using the Power to Prove
Kazuho Oku
 
PDF
JSX - 公開から1年を迎えて
Kazuho Oku
 
PDF
JSX - developing a statically-typed programming language for the Web
Kazuho Oku
 
PDF
ウェブブラウザの時代は終わるのか 〜スマホアプリとHTML5の未来〜
Kazuho Oku
 
PPTX
JSX
Kazuho Oku
 
PPTX
JSX Optimizer
Kazuho Oku
 
PPTX
JSX Design Overview (日本語)
Kazuho Oku
 
HTTP/2で 速くなるとき ならないとき
Kazuho Oku
 
QUIC標準化動向 〜2017/7
Kazuho Oku
 
HTTP/2の課題と将来
Kazuho Oku
 
TLS 1.3 と 0-RTT のこわ〜い話
Kazuho Oku
 
TLS & LURK @ IETF 95
Kazuho Oku
 
HTTPとサーバ技術の最新動向
Kazuho Oku
 
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
Kazuho Oku
 
Cache aware-server-push in H2O version 1.5
Kazuho Oku
 
HTTP/2時代のウェブサイト設計
Kazuho Oku
 
H2O - making HTTP better
Kazuho Oku
 
JSON SQL Injection and the Lessons Learned
Kazuho Oku
 
JSX 速さの秘密 - 高速なJavaScriptを書く方法
Kazuho Oku
 
JSX の現在と未来 - Oct 26 2013
Kazuho Oku
 
Using the Power to Prove
Kazuho Oku
 
JSX - 公開から1年を迎えて
Kazuho Oku
 
JSX - developing a statically-typed programming language for the Web
Kazuho Oku
 
ウェブブラウザの時代は終わるのか 〜スマホアプリとHTML5の未来〜
Kazuho Oku
 
JSX Optimizer
Kazuho Oku
 
JSX Design Overview (日本語)
Kazuho Oku
 
Ad

Recently uploaded (20)

PDF
The Complete Guide to Chrome Net Internals DNS – 2025
Orage Technologies
 
PDF
AiDAC – Custody Platform Overview for Institutional Use.pdf
BobPesakovic
 
PPTX
Simplifying and CounFounding in egime.pptx
Ryanto10
 
PDF
Azure Devops Introduction for CI/CD and agile
henrymails
 
PPTX
Internet_of_Things_Presentation_KaifRahaman.pptx
kaifrahaman27593
 
PDF
Pas45789-Energs-Efficient-Craigg1ing.pdf
lafinedelcinghiale
 
PPTX
02 IoT Industry Applications and Solutions (1).pptx
abuizzaam
 
PDF
The Power and Impact of Promotion most useful
RajaBilal42
 
PPTX
ipv6 very very very very vvoverview.pptx
eyala75
 
PPTX
Template Timeplan & Roadmap Product.pptx
ImeldaYulistya
 
PDF
Slides PDF: ZPE - QFS Eco Economic Epochs pdf
Steven McGee
 
PDF
APNIC's Role in the Pacific Islands, presented at Pacific IGF 2205
APNIC
 
PDF
How to Fix Error Code 16 in Adobe Photoshop A Step-by-Step Guide.pdf
Becky Lean
 
PPTX
1.10-Ruta=1st Term------------------------------1st.pptx
zk7304860098
 
PPTX
ZARA-Case.pptx djdkkdjnddkdoodkdxjidjdnhdjjdjx
RonnelPineda2
 
PDF
DORA - MobileOps & MORA - DORA for Mobile Applications
Willy ROUVRE
 
PDF
Digital Security in 2025 with Adut Angelina
The ClarityDesk
 
PDF
Technical Guide to Build a Successful Shopify Marketplace from Scratch.pdf
CartCoders
 
PPTX
Presentation on Social Media1111111.pptx
tanamlimbu
 
PPTX
Internet Basics for class ix. Unit I. Describe
ASHUTOSHKUMAR1131
 
The Complete Guide to Chrome Net Internals DNS – 2025
Orage Technologies
 
AiDAC – Custody Platform Overview for Institutional Use.pdf
BobPesakovic
 
Simplifying and CounFounding in egime.pptx
Ryanto10
 
Azure Devops Introduction for CI/CD and agile
henrymails
 
Internet_of_Things_Presentation_KaifRahaman.pptx
kaifrahaman27593
 
Pas45789-Energs-Efficient-Craigg1ing.pdf
lafinedelcinghiale
 
02 IoT Industry Applications and Solutions (1).pptx
abuizzaam
 
The Power and Impact of Promotion most useful
RajaBilal42
 
ipv6 very very very very vvoverview.pptx
eyala75
 
Template Timeplan & Roadmap Product.pptx
ImeldaYulistya
 
Slides PDF: ZPE - QFS Eco Economic Epochs pdf
Steven McGee
 
APNIC's Role in the Pacific Islands, presented at Pacific IGF 2205
APNIC
 
How to Fix Error Code 16 in Adobe Photoshop A Step-by-Step Guide.pdf
Becky Lean
 
1.10-Ruta=1st Term------------------------------1st.pptx
zk7304860098
 
ZARA-Case.pptx djdkkdjnddkdoodkdxjidjdnhdjjdjx
RonnelPineda2
 
DORA - MobileOps & MORA - DORA for Mobile Applications
Willy ROUVRE
 
Digital Security in 2025 with Adut Angelina
The ClarityDesk
 
Technical Guide to Build a Successful Shopify Marketplace from Scratch.pdf
CartCoders
 
Presentation on Social Media1111111.pptx
tanamlimbu
 
Internet Basics for class ix. Unit I. Describe
ASHUTOSHKUMAR1131
 

Developing the fastest HTTP/2 server