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 부분은 실제 파일 위치로 바꿔주자)
curl -v -F '.=@/파일 위치/test.txt;filename=test.txt' 127.0.0.1:8080
그러면 아까 nc -l 8080 를 쳤던 터미널에서 아래와 같이원본 요청 메세지(raw request message)를 확인할 수 있다.
POST / HTTP/1.1
Host: 127.0.0.1:8080
User-Agent: curl/7.54.0
Accept: */*
Content-Length: 210
Expect: 100-continue
Content-Type: multipart/form-data; boundary=------------------------bec329e690b424df
--------------------------bec329e690b424df
Content-Disposition: form-data; name="."; filename="test.txt"
Content-Type: text/plain
this is first file.
byebye
--------------------------bec329e690b424df--
'개발의 정석 > 웹' 카테고리의 다른 글
[#http] 0.1초만에 띄우는 초간단 웹 서버, http-server (0) | 2020.03.29 |
---|---|
[#http] multipart/form raw 포맷 서버 업로드 구현 (0) | 2020.03.24 |
댓글