
HTTP는 HyperText Transfer Protocol의 줄임말로 웹 상의 브라우저(Client)와 서버(Server)가 데이터를 주고받을때 사용하는 Protocol이다. 이름에 HyperText가 들어가있지만 텍스트뿐만 아니라 미디어등의 데이터도 전송이 가능하다.
Request & Response
HTTP통신은 Client의 요청(Request)와 그에 대한 Server의 응답(Response)로 이루어져있다.
지금 Velog에서 글을 쓰는것 또한 내가 Velog에 서버로보내는 Request이다.
TCP/IP 통신 위에서 동작
TCP/IP정리 참고
TCP/IP 통신 위에서 동작하며80번 포트를 사용한다.
어떤 종류의 데이터라도 전송이 가능하다.
텍스트,이미지,오디오등의 미디어 데이터도 전송이 가능하다.
비연결성은 Request에대한 Response를 받으면 그 연결을 끊어버리는 것을 의미한다.Client에서 오는 요청도 계속해서 연결/해제 해야한다는 단점이 존재한다. 비연결성의 특징을 가지기 때문에 Server는 Client를 식별하지 못한다.따라서 같은
Client에서Request를 보내더라도 그 요청은 독립적으로 시행된다.
HTTP를 이용하여 Client에서 Server로 Requset를 보낼때 어떠한 목적으로 Request를 하는것인지 정의를 내릴 수 있다.(HTTP Method)
주요 메소드는 아래와 같다.
GET : 서버가 데이터를 달라는 요청을 할 때 사용POST : 서버에게 데이터를 전송하는 요청을 할 때 사용PUT : 서버에서 요청 URI의 데이터를 수정하거나 새로 추가 하도록 요청 할 때 사용PATCH : 서버의 데이터를 일부 수정할 때 사용DELETE : 서버의 요청 URI의 데이터를 삭제하도록 요청 할 때 사용서버가 응답을 전송할 때 같이 전송하는 코드를 의미한다.
3자리숫자로 이루어져 있으며 요청에 대한 서버의 상태를 나타내준다.
앞자리는 1~5의 숫자 중 하나이며 이 중 4와 5는비정상적인 상황, 즉 Error를 의미한다.
1XX : 정보 응답100 Continue : 요청이 진행중이고 문제가 없다. 2XX : 성공 응답200 OK : 요청이 성공적으로 완료됨.201 Created : Create Complete 보통 POST, PUT요청 뒤에 온다. 3XX : 리다이렉션 메시지300 Multiple Choice : 요청에 대해 하나 이상의 응답이 가능함.301 Moved Permanetly : 요청한 리소스의 URI가 변경됨.4XX : Client Error400 Bad Request : 잘못된 문법401 Unauthorized : 인증되지 않은 클라이언트 요청403 Forbidden : 클라이언트가 리소스에 접근할 권리가 없음404 Not Found : 클라이언트가 요청한 리소스가 서버에서 찾을수 없음.408 Request Timeout : 요청 중 시간이 초과5XX : Server Error500 Internal Server Error : 서버에러를 처리 불가능502 Bad Gateway : 서버가 게이트웨이로부터 잘못된 응답을 받음.503 Service Temporarily Unavailable : 일시적으로 서버 사용불가능 (보통 점검상황 이거나 과부하로 인한 다운)504 Gateway Timeout : 서버가 게이트웨이의 역할을 하고있으며 다른 서버로부터 응답을 받지못함.웹에서의 중요한 API는 결국 HTTP의 Requset와 Response를 어떻게 조절하냐에 달려있는거같다.
어떤 언어를쓰든, 어떤 프레임워크를 쓰던 기본이 제일중요
참조한곳
HTTP
MDN HTTP 문서