네트워크 기초 · HTTP 와 TLS · 실습
HTTP 를 손으로 주고받는다
목표
HTTP 는 어렵지 않습니다. TCP 위에 약속된 글자를 주고받는 것뿐입니다.
그런데 라이브러리가 그 약속을 대신 지켜 주기 때문에, 어긋났을 때 무엇이
어긋났는지 읽지 못하게 됩니다.
여기서는 그 약속을 손으로 지켜 보고, 라이브러리가 감춘 것들을 하나씩 봅니다.
재료
python3 /opt/lab/netplan/httpsrv.py 8080 &경로마다 일부러 다르게 대답하는 작은 서버입니다.
/ Content-Length 로 길이를 알려 준다/chunked 길이를 모른 채 조각으로 나눠 보낸다/slow 첫 조각을 보내고 잠시 쉰다/nolength 길이도 조각도 없이, 연결을 닫아 끝을 알린다/moved /seeother /keepme 301 · 303 · 307남길 것
01-raw.txt 손으로 친 요청과 그 응답02-nohost.txt Host 를 뺐을 때와 1.0 으로 보냈을 때03-length.txt 본문의 끝을 알리는 세 방법04-keepalive.txt 한 연결에 요청 두 번05-redirect.txt 301 · 303 · 307 의 차이06-timing.txt 구간별 시간07-notes.md 다음에 읽을 사람에게단계 7개
- 요청을 손으로 친다
- Host 를 빼 본다
- 본문은 어디서 끝나나
- 한 연결에 두 번
- 301 · 303 · 307 은 무엇이 다른가
- 느린 구간을 숫자로 가리킨다
- 다음에 읽을 사람에게