HTTP는 HyperText 문서를 교환하기 위해 만든 Transfer Protocol (통신 규약)이다. 웹 상에서 서버끼리 통신을 할 때 어떠한 형식으로 주고 받을지 정해놓은 '통신구조' 또는 '통신형식'이라고 볼 수 있다.
- 요청 Request / 응답 Response
- Stateless
- start line
- header
- body
1. Start line
- HTTP Method
-해당 요청이 의도한 action을 정의
-GET, POST, PUT DELETE 등이 있다.
-GET과 POST를 가장 많이 사용
- Request Target:
-해당 요청이 전송되는 uri
-예를 들어 /login
- HTML Version:
-사용되는 html 버전 1.0 , 1.1, 2.0 등이 있다.
2. headers
- 해당 요청에 대한 추가 정보를 담고 있는 부분
- key:value 형태로 되어있다.
- 자주 사용되는 header의 내용
-Host: 요청이 전송되는 target의 url
-User-Agent: 요청을 하는 클라이언트 정보(예-브라우저 정보)
-Access: 해당 요청이 받는 응답의 타입
-Connection: 해당 요청이 끝난 후 클라이언트와 서버간의 연결 유지 여부
-Content-Type: 해당 요청이 보내는 메세지Body의 타입
-Content-Length: 메세지 Body의 길이
3. body: 해당 요청의 실제 메세지 내용. body가 없는 요청들도 많다.
- status line
- headers
- body
1. Status line
- HTTP 버젼
- Status Code: 응답 상태를 나타내주는 코드. 숫자로 되어있다.
- Status Text: 응답 상태를 간략하게 설명해준다
2. Headers: Request Headers와 동일하다. user-agent 대신 server가 있다.
3. Body: Request Body와 일반적으로 동일. 데이터 전송이 필요없는 경우 body가 없을 수 도 있다.
OPTIONS
- 주로 요청 URI에서 사용할 수 있는 Method를 받아올때 사용
PUT
-POST와 비슷하며 데이터를 생성할 때 사용
-POST와 겹치기 때문에 PUT을 사용하는 곳도 있고 POST로 통일해 사용하는 곳도 있다. 최근에는 POST를 많이 쓰는 추세
DELETE
-특정 데이터를 서버에서 삭제 요청을 보낼때 쓰이는 Method
-PUT과 마찬가지로 POST에 밀려 잘 사용되지 않는 추세
200 OK
- 문제없이 잘 실행되었을 때 보내는 코드
301 Moved Permanently
- 해당 URI가 다른 주소로 바뀌었을때 보내는 코드
400 Bad Request
- 해당 요청이 잘못된 요청일 떄 보내는 코드
401 Unauthorized
- 유저가 해당 요청을 진행할려면 먼저 로그인을 하거나 회원가입을 하거나 등이 필요하는 것을 나타낼 떄 보내는 코드
404 Not Found
- 요청된 URI가 존재 하지 않을때 보내는 코드
500 Internal Server Error
- 서버에서 에러가 났을 때 사용되는 코드