HTTP 이란 ?
HyperText :문서와 문서가 링크로 연결 되어 있음
Transter: HTML로 만든 웹페이지 문서를 보낸다.
Protocol: 컴퓨터끼리 어떻게 파일을 주고 받을 지에 대한 소통 방식 또는 약속
즉 통신 프로토콜로 웹문서를 전달할때 상호간의 지켜야 되는 규칙이다.
HTTP 구조는 client와 server가 상호 관계를 지니고 있다.
client와 server를 먼저 설명하면,
client는 요청을 보내는 입장으로 주로 브라우저에서 실행한다.
server는 client가 요청한 문서를 제공하는 역할을 한다.
client(user computer , 웹브라우저 )가 문서를 요청하면
server에서 요청을 응답해서 필요한 정보를 해당 사용자에게 전달한다.
1. request /response(요청/응답)
소통을 하려면 요청과 응답이 있어야한다.
말이 아닌 메시지 형식으로 요청하고 응답한다.
2.Stateless
state(상태) +less (없음)
HTTP 개별 통신은 모두 독립이라서 , 과거의 HTTP 통신의 결과를
보존하지 않는다.
매 통신마다 사전에 필요한 모든 정보를 담아서 요청을 보내야 한다.
HTTP method
요청이 의도한 액션을 정의
Request target
요청이 전송되는 목표 url
HTTP version
HTTP 버전
{Key : value}의 형태로 표현한다.
ex) Headers:{
Host: www.youtube.com
User-agent : chrome
Content-Type:applicouation/json
content-length:100
}
body:{
"username": melon@naver.com
"password":dnkfodk1234
}
요청 메소드에 따라 존재하지 않을 수 있음
데이터 받아올때 사용
웹페이지를 접속해서 필요한 데이터를 불러올때 사용
데이터를 생성/ 수정 할때 사용
body에 담는 내용이 핵심 (내가 보낸 데이터를 작업해서 수정까지 함 )
메소드로도 수정하는 과정에서 데이터를 삭제를 할 수도 있다.
서버에 저장된 특정 데이터 삭제 할때
하나의 요청의 하나의 응답만 가능하다 그러므로 메소드도 하나씩만 사용 할 수 있다.
client가 요청을 하면 서버는 세자리 수의 응답 코드와 함께 응답한다.
전달이 잘되었는지 오류가 어디서 났는지 전달 과정에서 문제가 있는지 알려주는 코드로 생각하면 된다.
개발자들은 코드를 보고 오류를 처리 할 수 있어서 중요하다.
주요 코드 위주로 정리를 해보자
200: ok, 오류 없이 전송 성공
202:Accepten , 서버가 클라이언트의 요청을 수락함
204: Non contet. 클라이언트의 요구를 처리했으나 전송할 데이터가 없다.
400: Bad Request, 요청 실패, 문법상 오류로 서버가 요청사항 이해못함
404: Not Found, 문서를 찾을수 없음
406:Not Acceptable, 받아들일 수 없음
411 : Length required, 클라이언트가 헤더에 content-Length를
포함하지 않으면 서버가 처리할 수 없음
500:Internal Server Error, 서버 내부 오류
501:Not Implemented, 필요한 기능이 서버에 설치되지 않았음
503:Service Unavailable, 외부 서비스가 죽었거나 현재 멈춘 상태 또는 이용 할 수 없는 서비스
505:HTTP Version Not Supported, 해당 HTTP 버전을 지원하지 않음
*대체로 400번대 오류는 프론트엔드 쪽에서 관리를 하고
500번대는 서버 이기 때문에 서버를 담당하는 백엔드 에서 오류를 해결한다.