HTTP(HyperText Transfer Protocol)
= 웹상에서 정보를 주고 받을 수 있는 프로토콜
- HTML 문서를 주고받는데 사용됨
- TCP를 사용하며, HTTP/3 버전 부터는 UDP를 사용함
- 80번 포트번호를 사용함
- 서버와 클라이언트 사이의 요청과 응답으로 이루어짐
- 상태를 지정하지 않음(Stateless)
[ 용어 ]
브라우저 = 사용자 에이전트(User Agent)
HTTP Request(요청)
1. Start line
- HTTP Method : 요청할 행동을 정의
- Request Type : 요청될 목표
- HTTP Version : 사용되는 HTTP 버전
2. Headers : 요청에 대한 추가정보
- General Headers : 생성된 날짜 및 시간에 대한 정보들이 있으며 body와 관련이 없는 헤더
- Request Headers : 요청 URL, 메소드, 요청 생성에 사용된 브라우저 기타 정보와 같은 요청에 관한 정보를 포함한 헤더
- Entity Headers : 컨텐츠 길이나 MIME 타입과 같이 엔티티 바디에 대한 자세한 HTTP 본문에 대한 정보를 포함한 헤더
3. Body : 실제 요청
HTTP Response(응답)
1. Status line
- HTTP Version
- Status Code : 응답 상태 코드
- Status Text : 응답 상태 문자
2. Headers
- General Headers : 상동
- Response Headers : 사용된 인코딩, 서버 시스템에서 응답에 사용한 소프트웨어 및 기타 정보를 포함하는 헤더
- Entity Headers : 상동
3. Body : 실제 응답
[ HTTP Method ]
1. GET
- 서버로 부터 요청할 떄 주로 사용
- 단순히 데이터를 받아오는 과정에 사용
- 데이터를 받아올 때 사용되므로 Body가 비어있는 경우가 많음
2. POST
- 데이터를 생성, 수정 및 삭제할 때 주로 사용
3. OPTION
- 목표 리소스와 통신 옵션을 설명하기 위해 사용됨
4. PUT
- 데이터를 생성할 때 주로 사용
- POST와 중복되며, 주로 POST를 많이 씀
5. DELETE
- 데이터를 삭제할 때 사용
[ HTTP Status Code ]
- 200 OK
- 301 Moved Permanently(영구 이동) : url 이동
- 400 Bad Request : 잘못된 요청
- 401 Unautorized(승인되지 않은) : 로그인 필요
- 403 Forbidden(금지된) : 권한 없음
- 404 Not Found
- 500 Internal Server Error : 서버에 에러
[ 참고한 것들 링크 ]
https://www.youtube.com/watch?v=TwsQX1AnWJU
https://ko.wikipedia.org/wiki/HTTP