HTTP 란?
- HyperText Transfer Protocol 의 약어이다.
- 웹에서 이루어지는 통신을 정의한 프로토콜, 즉 통신 규약이다.
- 인터넷 상에서 데이터를 주고 받기 위한 서버/클라이언트 모델을 따른다.
- 클라이언트란 요청을 보내는 쪽을 의미하고, 서버는 요청을 받는 쪽을 의미한다.
- Request 와 Response 구조로 나뉜다.
HTTP의 특징
- HTTP 통신의 특징은 기본적으로 연결이 되어 있지 않다.
- 클라이언트가 서버에 요청을 보내고 응답을 받으면, 그것으로 통신이 종료된다.
- 서버는 클라이언트가 웹 사이트에 접속해 있는지 알 수가 없다.
HTTP Request 구성
- Start line, Headers, Body 3부분으로 구성된다.
- Start line 은 HTTP Method(서버에 요청 시 수행하는 방식), Path, HTTP Version 으로 구성된다.
- Headers 는 해당 request에 대한 추가 정보를 담고 있는 부분이다.
- Body는 해당 request의 실제 메시지/내용을 담고 있다. (GET 메소드 요청 시에는 Body 부분이 없다.)
HTTP Method의 종류
① GET : 주로 데이터를 읽거나 검색할 때 사용한다. 즉, 오로지 데이터를 읽을 때만 사용되고 수정할 때는 사용하지 않는다. GET 요청이 성공적으로 이루어지면 → 200 OK 응답 코드가 리턴, 에러 발생 시 → 404(Not Found) 나 400(Bad request) 응답 코드가 리턴
- GET 요청 시 서버에 보낼 데이터가 URI 에 붙는다. 즉, 쿼리(파라미터) "?key=value" 까지 같이 날아간다.
- 매개변수 값이 URI에 포함되기 때문에 URI 인코딩을 설정해야 한다.
- 요청 라인과 요청 헤더에 최대 크기 제한이 있기 때문에 대용량 데이터 전송이 불가하다.
- 주소창에 사용자가 입력한 정보가 그대로 노출되는 보안 문제가 있고 이미지, 동영상 같은 바이너리 파일의 데이터는 URL에 붙여서 보낼 수 없다.
② POST : 주로 새로운 리소스를 생성할 때 사용한다. POST 요청이 성공적으로 이루어지면 → 201(Created) 응답 코드가 리턴
- URL에 데이터가 포함되지 않아 외부에 정보가 노출되지 않는다.
- 메시지 본문에 데이터를 포함한다. → 메시지 body 부분에 담긴다.
- 바이너리 및 대용량 데이터 전송이 가능하다.
③ OPTION : 요청하는 리소스가 허용하는 메소드 목록을 반환한다. 예) 어떤 페이지가 GET 메소드만 허용하는 경우, GET 이 반환된다.
④ HEAD : GET 메소드와 동일하지만, Response 의 Header 부분만 받는다. 예를 들어, 서버의 상태를 확인할 때 사용한다.
⑤ PATCH : 특정 리소스 내용 중 보낸 값의 key 만을 변경한다.
⑥ DELETE : 특정 데이터를 서버에 삭제 요청 보낼 때 사용한다.
HTTP Response 구성
- Start line, Headers, Body 3부분으로 구성된다.
- Start line 은 HTTP Version, Status code(응답 상태 숫자 코드), Status text 으로 구성된다.
- Headers 는 해당 response 에 대한 추가 정보를 담고 있는 부분이다. Server가 header 값으로 사용한다.
- Body는 해당 response의 실제 메시지/내용을 담고 있다.
Status code의 종류
더 많은 status code 는 아래 ...
https://developer.mozilla.org/ko/docs/Web/HTTP/Status
HTTP와 HTTPS 의 차이
- HTTP 는 암호화가 되지 않은 평문 데이터를 전송하는 프로토콜이다. HTTP로 개인정보 등을 주고 받으면 제 3자가 정보를 조회할 수 있다는 보안 취약점이 발생한다.
- HTTPS 는 인터넷 상에서 정보를 암호화하는 SSL 프로토콜을 이용하여 웹 클라이언트와 서버가 데이터를 주고 받는 프로토콜이다.
'Web > Web' 카테고리의 다른 글
웹 해킹 워게임 사이트 (0) | 2022.11.23 |
---|---|
URL? URI? URN? (0) | 2021.12.10 |
WEB 이란? (0) | 2021.11.16 |
Rest API란? Restful API란? Rest API vs Restful API (0) | 2021.11.02 |
댓글