티스토리 뷰
[HTTP와 HTTPS의 의미]
HTTP는 HTML, 이미지, 비디오 등 웹 페이지 데이터를 전송하기 위해 웹 서버와 통신하는 데 사용하는 프로토콜임.
HTTPS는 HTTP에 SSL/TLS를 적용해 클라이언트와 서버가 주고받는 데이터를 암호화시켜 스니핑을 방지하기 위한 프로토콜임.
[URL]
Scheme: 자원에 접근하기 위해 어떤 프로토콜을 사용할지 정함.
User: 일부 서비스는 로그인 시 인증이 필요하며 URL에 사용자 이름과 비밀번호를 입력해서 로그인이 가능함.
Host/Domain: 접근하려는 서버의 도메인 이름 또는 ip 주소
Port: 연결할 포트를 지정함. 일반적으로 HTTP 의 경우 80 , HTTPS의 경우 443임.
Path: 자원의 파일 이름 또는 위치를 나타냄.
Query String: 요청하는 Path로 보낼 수 있는 추가 데이터를 의미함.
Fragment: 웹 페이지 내 특정 부분의 위치를 사용자에게 전달하고 싶을 때 사용
[HTTP 요청/응답 구조]
HTTP 요청은 요청라인(요청 Method + URL + Version) + 요청헤더 + 빈 라인 + 요청 바디로 구성
※ Referer: 현재 요청한 URL을 담고있는 페이지의 URL 정보
※ Host: 현재 요청이 전송 될 대상 서버
HTTP 응답은 Version + Status(Request에 대한 성공/실패를 나타내는 상태코드) + Status Message(상태 설명) + 빈 라인 + 응답 바디로 구성
※ Content-Type: 클라이언트에게 HTML, 이미지, 비디오, pdf, XML 과 같은 어떤 종류의 정보가 전송될 것인지 알려줌.
※ Content-Length: 클라이언트에게 전송될 데이터의 크기를 지정.
[HTTP Method]
HTTP Method는 클라이언트가 서버 측에 보내는 요청을 서버 측에서 어떤 방식으로 처리할 지 결정함.
GET | 지정한 URL(자원)을 서버측에 요청할 때 사용 |
POST | 요청 바디에 담은 데이터를 지정한 URL(자원)에 전달하고 처리 결과를 요청할 때 사용 |
PUT | 웹 서버에 데이터를 새롭게 추가할 때 사용 |
DELETE | 웹 서버에 있는 데이터를 삭제할 때 사용 |
※ GET 메소드는 URL 끝에 있는 쿼리스트링을 통해 데이터를 전달하므로 웹 서버의 로그상에 기록이 남지만
POST 메소드는 요청 바디에 데이터를 담아 전달하므로 웹 서버의 로그상에 기록이 남지 않는다.
[Cookie]
클라이언트의 상태정보를 쿠키라는 형태로 클라이언트 측에 저장해두고 필요시 해당 쿠키를 이용해 클라이언트의 상태정보를 참조할 수 있음.
(동작 순서)
1. 클라이언트가 웹 페이지를 요청함.
2. 서버는 클라이언트에게 User name을 입력하도록 하는 웹 페이지를 응답으로 보냄
3. 클라이언트가 웹 페이지를 통해 User name을 입력해서 서버에게 전송
4. 서버는 전달받은 User name을 쿠키에 담아 쿠키를 생성하고 Set-Cookie 헤더에 쿠키를 담아 클라이언트에게 전달
5. 이후 클라이언트는 서버로부터 전달받은 쿠키를 Cookie 헤더에 담아 서버에 전달
6. 서버는 전달받은 쿠키를 통해 사용자의 이전 정보를 불러올 수 있음.
'THM - Web Fundamentals > 웹 작동 방식' 카테고리의 다른 글
웹 사이트 작동 방식 (0) | 2023.05.02 |
---|---|
DNS(Domain Name System) (0) | 2023.04.30 |