Skip to content

Commit 382c51f

Browse files
committed
optimize encoded of headers in HPack
1 parent f8f2e9f commit 382c51f

File tree

1 file changed

+4
-7
lines changed

1 file changed

+4
-7
lines changed

src/main/java/robaho/net/httpserver/http2/hpack/HPackContext.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,9 @@
22

33
import java.io.IOException;
44
import java.io.OutputStream;
5-
import java.lang.reflect.Array;
6-
import java.util.ArrayDeque;
75
import java.util.ArrayList;
86
import java.util.Arrays;
9-
import java.util.Deque;
107
import java.util.EnumSet;
11-
import java.util.LinkedList;
128

139
import robaho.net.httpserver.http2.HTTP2ErrorCode;
1410
import robaho.net.httpserver.http2.HTTP2Exception;
@@ -20,7 +16,6 @@
2016

2117
import robaho.net.httpserver.http2.frame.FrameFlag;
2218
import robaho.net.httpserver.http2.frame.FrameHeader;
23-
import robaho.net.httpserver.http2.frame.FrameType;
2419
import robaho.net.httpserver.http2.Utils;
2520
import robaho.net.httpserver.http2.frame.FrameType;
2621

@@ -43,7 +38,7 @@ public void addHeaderField(HTTP2HeaderField field) {
4338
}
4439

4540
public List<HTTP2HeaderField> decodeFieldSegments(byte[] buffer) throws HTTP2Exception {
46-
List<HTTP2HeaderField> headers = new ArrayList<>();
41+
List<HTTP2HeaderField> headers = new ArrayList<>(8);
4742
int index = 0;
4843

4944
try {
@@ -232,10 +227,12 @@ private static byte[] encodeHeaders(Headers headers) {
232227
List<byte[]> pseudo = new ArrayList<>(6);
233228
headers.forEach((name, values) -> {
234229
for (String value : values) {
235-
byte[] header = encodeHeader(name.toLowerCase(), value);
236230
if(name.startsWith(":")) {
231+
byte[] header = encodeHeader(name, value);
237232
pseudo.add(header);
238233
} else {
234+
// Headers keys are normalized to the first letter in uppercase and the rest in lowercase
235+
byte[] header = encodeHeader(Character.toLowerCase(name.charAt(0))+name.substring(1), value);
239236
fields.add(header);
240237
}
241238
}

0 commit comments

Comments
 (0)