-
RFC 7540(HTTP 2) Stream Identifiers
Aug 2, 2015Stream Identifiers 스트림들은 31비트의 정수형 문자로 식별된다. 클라이언트에 의해서 생겨나는 stream의 식별자는 홀수로, 서버에 의해서 생기는 스트림은 짝수로해야한다. stream의 식별자 0은 connection control을 위한 메세지에 사용된다. HTTP/2로 이동하기 위한 HTTP/1.1의 request는 stream identifier 0x1로 응답된다. HTTP/2로 버전업이 완료된 후에는 0x1의 stream 식별자는 클라이언트에게 half-closed (local)상태이다. 따라서, 0x1은 HTTP/1.1에서 버전업 된...
-
RFC 7540(HTTP 2) Starting HTTP/2
Aug 2, 2015HTTP/2의 시작 HTTP/2에서는 전송계층의 프로토콜로 HTTP/1과는 다르게 TCP를 사용한다고 명시되어 있다. 또한 HTTP/2는 http와 https의 URI scheme을 HTTP/1.1과 동일하게 사용하고 포트 번호도 기본 설정을 80번 https는 443번을 사용한다. HTTP/2는 1.1과 동일하게 TLS위에서 동작하는 h2와 cleartext TCP위에서 동작하는 h2c로 나뉘게된다. h2: HTTP/2에서는 TLS 1.2버전 혹은 그 이상의 버전을 요구하고 있다. 이...
-
RFC 7540(HTTP 2) Streams State
Aug 2, 2015Streams and Multiplexing HTTP 2.0에서의 스트림은 양방향성의 독립된 client와 server frame을 교환할 수 있는 통로입니다. 스트림들은 몇가지 중요한 특징이 있습니다. 하나의 HTTP/2 connection에는 여러개의 stream이 있을 수 있습니다. 각각의 endpoint에서는 frame을 multistream으로 보낼 수 있습니다. stream은 설치될 수 있고, 일방적으로 사용되거나 클라이언트나 서버가 공유할 수 있습니다. stream은 각각의 endpoint에서 닫을...
-
Compare HTTP 1.1 to 1.0
Aug 1, 2015HTTP 1.1은 HTTP 1.0의 부족한 점을 보강하고자 정해진 표준으로 1999년에 RFC 2616으로 등록되어 있다. 1.0의 HTTP 버전 설명에 나와있듯, 몇 가지 용어에 대해서 정의가 변경되거나, 확장되었을 뿐 기본적인 프로토콜의 메세지 구조는 똑같다.(다른 그것을 보고 싶다면 HTTP/2를…) 따라서 이 장에서는 전체적인 해석보다는 부분적으로 달라진 점에 대해서 확인해 볼 것이다. Missing Charset...
-
RFC 1945(HTTP 1.0) 요약 下
Jul 29, 2015Request HTTP-message = Simple-Request ; HTTP/0.9 messages | Simple-Response | Full-Request ; HTTP/1.0 messages | Full-Response Full-Request = Request-Line ; Section 5.1 *( General-Header ; Section 4.3 | Request-Header ; Section 5.2 | Entity-Header ) ; Section 7.1 CRLF [ Entity-Body ] ; Section 7.2 Full-Response = Status-Line ; Section...
-
RFC 1945(HTTP 1.0) 요약 上
Jul 29, 2015HTTP VERSION HTTP 버전은 <major version>.<minor version> 으로 이루어 진다. <minor>가 올라가는 경우는 파싱 알고리즘의 차이는 없고, 헤더의 추가나 기능의 추가를 나타낸다. <major> 프로토콜의 파싱 알고리즘에 큰 변화가 있을 경우에 올라간다. HTTP의 버전은 "HTTP" "/" "1*DIGIT" . "1*DIGIT"같은 형식으로 표기한다. 또한, HTTP/2.4는 HTTP/2.13에 비해 낮은 버전이다 minor version은 소숫점이 아니라...
-
Python Flake 8 for Sublime Text
Jul 29, 2015Python 코드 작성 시 일반적인 컨벤션에 대해서 서술하고 있는 PEP 8에 대해서 한번 읽어보는게 좋다. 하지만 이걸 외우면 좋겠지만 사람인지라 실수를 할 수도 있어, 그걸 잡아주는 유틸인 Flake8이 있다. Note: 이런 기능을 하는 유틸리티에는 PyFlakes 외에 PyLint PyChecker등 여러가지 lint 유틸리티가 존재한다. Flake8은 여러가지 에디터 플러그인 형태로 지원하지만, 제가 주로...
-
Python string concat
Jul 29, 2015Python으로 string concat할 일이 많아 질 것으로 보여서 미리 찾아 봤는데, 역시나 str 객체에 += 연산자로 concat하는 방식은 객체를 계속 재생산하는 방식이다.. 사이트를 뒤져보니 여러 제안이 있고 테스트 코드도 작성되어 있어서 조금 커스텀해서 작성했다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
-
Python range and xrange
Jul 29, 2015Sublime에서 syntax설정이 python으로 되어 있을때, for문을 입력하면 자동 완성으로 1 2 for x in xrange(1,10): pass 이렇게 완성되는데 xrange와 그냥 range의 차이에 대해서 궁금해 졌고 stackoverflow에 같은 질문을 한 글을 볼 수 있었다. 중요한건 언제나 답변인데, range creates a list, so if you do range(1, 10000000) it creates a list...
-
RFC 7540(HTTP 2) Frame code
Jul 28, 2015HTTP2 Frame HTTP2의 Frame에 대해서 공부하고 포스팅 안한 부분에 대한 공부까지 합쳐서 일단 코드를 짜고 보았다. 개인적으로 Flow control을 보고 있지만 빠른 시간내로 포스팅 할 것을 목표로하고 일단 코드를 써봤는데.. python으로 작성했고 Frame이란 클래스를 작성하여 추후에 코드 재사용을 목표로 하고는 있지만… 여튼 frame의 사이즈 제한 정책에 따라 data를 설정할 때...
Page: 4 of 6
►