HTTP(하이퍼텍스트 전송 프로토콜)란?
웹 브라우저와 웹 서버 등의 사이에서 HTML이나 이미지, 데이터를 주고받기 위한 응용 계층의 프로토콜. 클라이언트가 메서드, URL, 헤더, 본문으로 이루어진 요청을 보내고, 서버가 상태 코드, 헤더, 본문으로 이루어진 응답을 돌려준다. 프로토콜로서는 무상태이며, 로그인 같은 상태는 Cookie 등을 사용하여 유지한다. HTTP/1.1은 텍스트 형식으로 지속 연결을 사용하고, HTTP/2는 하나의 TCP 연결 위에서 여러 스트림을 다중화하며, HTTP/3은 UDP 위의 QUIC을 사용한다. TLS로 보호한 것을 HTTPS라고 한다.
일본어 명칭: HTTP
HTTP(하이퍼텍스트 전송 프로토콜)은(는) 웹 기술 기초, 네트워크 기초 등 2개 분야의 연습 문제 14개에 나와요.
분야: 웹 기술 기초
요청과 응답의 형태
요청은 'GET /index.html HTTP/1.1' 같은 요청 라인, Host나 Accept 등의 헤더, 빈 줄, 본문의 순서로 나열됩니다. 응답은 'HTTP/1.1 200 OK' 같은 상태 라인, Content-Type이나 Cache-Control 등의 헤더, 본문으로 이루어집니다. 헤더는 '이름: 값' 형태로, 본문의 종류, 캐시 취급, 인증 정보, 압축 방식 등을 전합니다.
자주 묻는 질문
HTTP와 HTTPS는 무엇이 다른가요?
HTTPS는 HTTP 통신을 TLS로 암호화하고, 변조 검출과 서버 인증을 더한 것입니다. 요청이나 응답의 형태는 HTTP와 같으며, 기본 포트 번호는 HTTP가 80, HTTPS가 443입니다. 비밀번호나 Cookie를 지키기 위해 웹사이트에서는 일반적으로 HTTPS를 사용합니다.
GET과 POST는 어떻게 구분해서 사용하나요?
GET은 리소스를 가져오기 위한 메서드로, 서버의 상태를 바꾸지 않는 '안전'한 것으로 취급되어 브라우저나 캐시가 반복해서 보내거나 저장하기도 합니다. POST는 주문이나 게시처럼 서버에 처리를 시키거나 데이터를 등록할 때 사용합니다. GET의 쿼리는 URL에 들어가 접근 기록이나 열람 이력에 남으므로, 비밀번호 같은 비밀 정보는 넣지 않습니다.