Closed ykoh42 closed 3 years ago
우선 request parsing을 버퍼 하나에 http message가 모두 담긴다는 가정하에 작성했는데,
상황에 따라서는 http message가 너무 크면 버퍼 하나에 모두 담기지 않을 탠데,
이때 버퍼를 모두 받아 놓고 처리를 해야하는지 아니면 한번 가져온 버퍼를 처리하고 버퍼를 또 받아오고처리하고.. 이런식으로 가야할지
이것도 나중에 고려해보아야할듯
버퍼 하나에 모두 담기는 않는 이유가 둘 중에 어떤 경우일까? (혹은 둘다 인가?)
char buffer[1024]
)현재 내 생각
To: @kohyounghwan
단순히 컨탠츠가 길고 버퍼가 작기 때문인데,
성능적인 이슈때문에 다받아놓고 처리하면 안된다거나 하는 문제가 추후에 생길수도 있을것같음
내부적으로 어떻게 동작할까..?
string끼리의 연결이 strjoin같이 동작한다면 매 버퍼마다 전체를 한번씩 훑을탠데 이러면 성능문제가 생기지 않을까 고민이되긴함
근데 이건 우선 나중에 성능문제가 있을때 체크해보면될듯..?
To: @exgs
Yes, 성능상의 문제라고하면, 그때가서 처리하면 될 듯! (zenhub의 pipelines 으로 구별한다면, icebox 이겠네)
@kohyounghwan
안에 쓰여있떤 내용은 충분히 구두로 합의된것같음
기능이 필요한 이유 http message를 받을 수 있는 서버가 반드시 있어야함.
우선 최소한 단일 요청이라도 처리할수있고, 버퍼 사이즈가 조금 유동적일지라도 request message를 온전히 다 받을수있어야 할것같고, 추후에는 메세지 전문을 다 가져온뒤 파싱작업을 진행할지 or read로 한번 읽을때마다 처리해줄지 고려해봐야할듯 두 가지 경우 성능차이가 있을지(?) 있을것같다면 성능이 우수한 방향으로 정해야 할듯
정리하자면, 단일 request이라도 처리할 수 있는 서버 로직 작성 (소켓옵션으로 소켓 재사용할수있으면 좋을듯) select 등은 위에 될때 추후에 수정해도될것같음