HTTP

Goun Seo·2021년 9월 9일
0

HTTP 이란 ?

HyperText :문서와 문서가 링크로 연결 되어 있음
Transter: HTML로 만든 웹페이지 문서를 보낸다.
Protocol: 컴퓨터끼리 어떻게 파일을 주고 받을 지에 대한 소통 방식 또는 약속
즉 통신 프로토콜로 웹문서를 전달할때 상호간의 지켜야 되는 규칙이다.



client " 떡볶이 조리법 동영상 보여줘 "

server "응 알겠어. 떡볶이 조리법 동영상 보낼게 "


HTTP 구조

HTTP 구조는 client와 server가 상호 관계를 지니고 있다.
client와 server를 먼저 설명하면,
client는 요청을 보내는 입장으로 주로 브라우저에서 실행한다.

server는 client가 요청한 문서를 제공하는 역할을 한다.
client(user computer , 웹브라우저 )가 문서를 요청하면
server에서 요청을 응답해서 필요한 정보를 해당 사용자에게 전달한다.



HTTP 특징

1. request /response(요청/응답)
소통을 하려면 요청과 응답이 있어야한다.
말이 아닌 메시지 형식으로 요청하고 응답한다.

2.Stateless
state(상태) +less (없음)
HTTP 개별 통신은 모두 독립이라서 , 과거의 HTTP 통신의 결과를
보존하지 않는다.
매 통신마다 사전에 필요한 모든 정보를 담아서 요청을 보내야 한다.




📎 Request 메세지 구조

<Start line> : 요청의 첫번째 줄

HTTP method
요청이 의도한 액션을 정의
Request target
요청이 전송되는 목표 url
HTTP version
HTTP 버전

<header>: 요청의 메타데이터를 담고 있는 부분

{Key : value}의 형태로 표현한다.

ex) Headers:{
Host: www.youtube.com
User-agent : chrome
Content-Type:applicouation/json
content-length:100
}

<Body>: 요청의 실제 내용

body:{
"username": melon@naver.com
"password":dnkfodk1234
}

요청 메소드에 따라 존재하지 않을 수 있음


HTTP request methods

get

데이터 받아올때 사용
웹페이지를 접속해서 필요한 데이터를 불러올때 사용

post

데이터를 생성/ 수정 할때 사용
body에 담는 내용이 핵심 (내가 보낸 데이터를 작업해서 수정까지 함 )
메소드로도 수정하는 과정에서 데이터를 삭제를 할 수도 있다.

delete

서버에 저장된 특정 데이터 삭제 할때

하나의 요청의 하나의 응답만 가능하다 그러므로 메소드도 하나씩만 사용 할 수 있다.

실제 예시


status code : 응답 코드

client가 요청을 하면 서버는 세자리 수의 응답 코드와 함께 응답한다.
전달이 잘되었는지 오류가 어디서 났는지 전달 과정에서 문제가 있는지 알려주는 코드로 생각하면 된다.
개발자들은 코드를 보고 오류를 처리 할 수 있어서 중요하다.
주요 코드 위주로 정리를 해보자

2XX - 성공 , 데이터 전송이 성공적으로 대체로 이루어짐을 표현함

200: ok, 오류 없이 전송 성공
202:Accepten , 서버가 클라이언트의 요청을 수락함
204: Non contet. 클라이언트의 요구를 처리했으나 전송할 데이터가 없다.

4XX -clinet error , 클라이언트 측의 오류

400: Bad Request, 요청 실패, 문법상 오류로 서버가 요청사항 이해못함
404: Not Found, 문서를 찾을수 없음
406:Not Acceptable, 받아들일 수 없음
411 : Length required, 클라이언트가 헤더에 content-Length를
포함하지 않으면 서버가 처리할 수 없음

5xx- server error, 서버 측의 오류

500:Internal Server Error, 서버 내부 오류
501:Not Implemented, 필요한 기능이 서버에 설치되지 않았음
503:Service Unavailable, 외부 서비스가 죽었거나 현재 멈춘 상태 또는 이용 할 수 없는 서비스
505:HTTP Version Not Supported, 해당 HTTP 버전을 지원하지 않음

*대체로 400번대 오류는 프론트엔드 쪽에서 관리를 하고
500번대는 서버 이기 때문에 서버를 담당하는 백엔드 에서 오류를 해결한다.

profile
그리다 보면 ~ ♪

0개의 댓글