Skip to content

pjc0247/HttpServer.cs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HttpServer.cs

HttpServer implementation with C#.

doc

Core

  • Streaming HTTP request parsing.
    • Re-implement without LINQ (for performance)
    • C++/CLI로 파서 재작성
  • Response with simple format
  • gzip encoding
  • chunked encoding
  • keep alive
    • timeout (server-side)
  • Interface for middleware
  • WebSocket
    • Handshaking
      • 버전 체크
      • Subprotocol
    • Protocol Upgrading
    • Frame parsing
      • Payload7
      • Payload16
      • Payload64
    • Frame contstruction
      • Payload7
      • Payload16
      • Payload64
    • fin 0/1 (Segmented packet)
    • 연결 관리
    • PingPong
    • Echo Server
    • Fragmentation
      • Receiving fragmented packets
      • Control frames between fragmented packets
      • Sending fragmented packets
  • Exception handling
    • Parsing error (400)
    • Internal server error (500)
    • 잘못된 버전 (505)
    • Packets without masks
    • Request too long
    • Request timeout (408)
      • HTTP
      • WebSocket
  • HTTPS
  • Streaming response
  • HTTP2.0
    • Protocol upgrading
      • H2C
      • Direct
      • H2 (ALPN)
    • HPACK
      • Static Table
      • Dynamic Table
      • String Decoding
      • String Encoding
    • Stream
    • Ping
    • Setting
    • Data
      • 조각난 데이타 프레임
      • Padding

Adaptor

Application

  • 간단하게 프로그래밍 가능한 어플리케이션 레이어 구성

USAGE

Creat Server

// HTTP SERVER
var serv = ServerFactory.CreateHttp<SimpleAdaptor>();

// HTTPS SERVER
var cert = new X509Certificate2("server.pfx", "password");
var serv = ServerFactory.CreateHttps<SimpleAdaptor>(cert);

serv.Open(9916);

About

HttpServer with C#

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published