본문 바로가기

개발의 정석/웹3

[#http] 0.1초만에 띄우는 초간단 웹 서버, http-server 직접 웹 서버에 띄워 보고 싶을 땐, 흔히 nginx, httpd 와 같은 세팅이 필요한 웹 서버를 이용하게 된다. 그러나 html, js, css, 이미지 파일과 같은 스태틱 파일들을 서빙할 때 굳이 세팅이 필요한 복잡한 웹 서버를 사용할 필요는 없다. 오늘은 정말 간단하게 웹 서버를 띄울 수 있는 http-server에 대해서 알아보자 http-server 1. 설치하기 npm install -g http-server 2. 구동하기 서빙하길 원하는 디렉토리로 들어가 아래 명령어를 쳐주면, http://127.0.0.1:8181 (또는 http://localhost:8181)로 확인할 수 있다. http-server -p 8181 2020. 3. 29.
[#http] request 메세지를 raw 형태로 보고 분석하기 request message를 raw 형태로 보고 분석해야하는 경우가 있다. 예를 들면 Transfer-Encoding: chunked 가 어떻게 동작하는지, 업로드 시에 Contenty-Type: multipart-form 은 어떤 형식으로 요청이 날라가게 되는건지 서버는 이를 어떻게 처리해야하는지 등을 파악하려면 요청 메세지를 원본 그대로 보고 분석해야한다. 명령어 nc 터미널을 키고 아래의 nc 명령어만 치면 8080 포트로 웹 서버가 구동 된다. nc -l 8080 이제 테스트하길 원하는 어떤 명령이든 127.0.0.1:8080 (또는 localhost:8080) 으로 날려주면 된다. 예를 들어 파일 업로드 시 요청 메세지 원본을 보고 싶으면 아래 명령어를 치면 된다. (파일 위치/test.txt.. 2020. 3. 29.
[#http] multipart/form raw 포맷 서버 업로드 구현 여러 파일을 한번에 업로드할 때 헤더 Content-Type: multipart/form-data 로 POST 요청을 하게 된다. 이때 request body에는 어떤 형식으로 데이터가 들어가는지 알아보자 예시로 test.txt this is first file. baljagae tistory test2.txt this is second file. Hello World:) 위 두 파일을 Content-Type: multipart/form-data 으로 보내면 request body에 아래와 같은 포맷으로 서버에 넘어가게 된다. \r\n으로 해당하는 파일의 헤더를 구분하고, 이 헤더에는 파일명, 타입 등이 기재되어 있다. 그리고 \r\n\r\n 다음에 직접 파일의 내용을 담고 있다. 서버에서는 \r\n\r.. 2020. 3. 24.