끄적이는 메모장

[HTTP] HTTP 이해하기 (1) 본문

웹기술 개발자 되기/HTTP

[HTTP] HTTP 이해하기 (1)

밥보92 2020. 3. 29. 13:19
반응형

서버 개발자에서 웹 기술 개발자가 되기 위한 스텝. HTTP 이해하기 (1)

 

HTTP?

- Hypertext Transfer Protocol의 약자

- 서버와 클라이언트 사이에서 데이터를 주고 받기 위한 통신 규약정도로 정리 가능

- TCP/IP상에서 동작(OSI 7계층에서 어플리케이션 레벨)

- 다양한 형식의 데이터(텍스트, 사진, ... )를 주고 받을 수 있음

 

동작 방식

- 클라이언트/서버 모델

Client : URI를 기반으로 Request를 Server에 보냄

Server : Client으로 받은 Request를 처리하여 Response를 Client로 보냄 

 

메시지 구조

- 아래와 같은 형태로 

Start Line
Header
Blank Line
Body

Start Line : 요청라인 or 상태라인

- Request의 경우 (Method, Path, Version)

- Response의 경우 (Version, Status Code, Status Message)

Header : 추가로 서버쪽으로 전달하고자 하는 내용, 줄바꿈 문자로 Header를 구분

Blank Line : Header와 Body를 구분하기 위한 빈 라인

Body : 서버쪽으로 전달하고자 하는 내용 (생략 가능)

 

요청 예시)

GET /TEST HTTP/1.1 <--- Start Line

Host : www.exmaple.com:80 <--- Header 

 

응답 예시)

HTTP/1.1 200 OK <--- Start Line

Content-Type : text/html <--- Header

                                 <--- Blnak Line

<html>                       <--- Body  

 ...

</html>

 

Method

- HTTP는 Method를 요청에 대한 의도를 명확히 할 수 있음

GET : 정보를 조회하기 위한 요청

POST : 정보를 삽입하기 위한 요청

PUT : 정보를 수정하기 위한 요청 

DELETE : 정보를 삭제하기 위한 요청

 

특징 

Connectless : 클라이언트는 요청에대해 응답을 받으면 연결을 끊음

Stateless : 서버/클라이언트 간 통신이 끝나면 상태를 저장하지 않음

- 많은 요청을 처리할 수 있지만, 클라이언트의 이전 상태를 알고 다음 요청을 처리가 힘듦

- Keep-alive, Session, Cookies !

반응형