내배캠 첫 팀프로젝트를 무사히(?) 마치고 뒤돌아 볼 여유는 없다는 듯이 새로운 조에서 공부와 개인 과제를 앞두고 외마디 비명을 삼키며 오늘도 미친듯이 달려가고 있다. 드디어 Node.js 입문주차에 들어서며 설레는 마음으로 강의를 듣기 시작했으나 적잖이 어려운 용어가 속속이 드러나니 CS에 대한 특강도 이루어졌으면 하는 바람이 생겼다. 한편으로는 그토록 궁금해했던 용어에 대한 설명이 너무 뒤늦게 나오지 않았나 라며, 입문 강의를 먼저 듣고 난 후 첫 프로젝트를 시작했었더라면 좀 더 나은 결과물을 기대해볼 수 있지 않을까라는 생각도 다소 들었다.
HTTP에 관련된 특강도 한 번 이루어지기는 했으나, 복습할 겸, 교육자료를 살펴보면서 다시 한 번 제대로 이해해보고자 한다.
용어 해설
- URL(Uniform Resource Locator)
: ‘<프로토콜>://<도메인 명>:<포트>/<경로>’의 구조를 가지며, 이는 웹서버의 특정한 리소스의 위치를 가리킨다.- DNS(Domain Name Service)
: URL을 IP로 변환해주는 역할을 하는 서비스다. DNS를 이용하면, 사용자가 IP를 사용하지 않고도 더욱 편리하게 해당하는 인터넷의 리소스에 접근할 수 있다.- IP(Internet Protocol)
: 각각의 네트워크에 연결된 장치들이 고유한 IP 주소를 가져 인터넷 상에 존재하는 해당하는 장치의 위치를 식별할 수 있게 해줍니다.
Request란 클라이언트가 서버에게 전달하려는 정보나 메시지를 담는 객체를 의미합니다. Request의 세부 사항에는 URL, Http method, 헤더(header), 쿼리 파라미터(query parameter), 바디 데이터(body data) 등이 포함됩니다.
Response란 서버에서 클라이언트로 응답 메시지를 전송시켜주는 객체입니다. Response의 세부 사항에는 상태 코드(status code), 응답 데이터(response data), 응답 헤더(response header) 등이 포함됩니다.
HTTP Request는 상태 줄(status line), 헤더(header), 빈 줄(blank line), 본문(body, payload)로 구성된다.
상태 줄은 Method, 요청 타겟, HTTP 버전에 대한 정보를 담고 있다. 여기서 Method는 클라이언트와 서버 사이에 이루어지는 Request과 Response 데이터를 전송하는 방식을 일컫는다. 서버에 주어진 리소스에 수행하길 원하는 행동, 서버가 수행해야 할 동작을 지정하여 요청을 보내는 방법이다.
Method의 종류
- GET : 리소스 조회
- POST: 요청 데이터 처리, 주로 등록에 사용
- PUT : 리소스를 대체(덮어쓰기), 해당 리소스가 없으면 생성
- PATCH : 리소스 부분 변경 (PUT이 전체 변경, PATCH는 일부 변경)
- DELETE : 리소스 삭제
- HEAD : GET과 동일하지만 메시지 부분(body 부분)을 제외하고, 상태 줄과 헤더만 반환
- OPTIONS : 대상 리소스에 대한 통신 가능 옵션(메서드)을 설명(주로 CORS에서 사용)
- CONNECT : 대상 자원으로 식별되는 서버에 대한 터널을 설정
- TRACE : 대상 리소스에 대한 경로를 따라 메시지 루프백 테스트를 수행