나는 이렇게 학습한다/CS

HTTP(Hyper Text Transfer Protocol)를 알아보자

daco2020 2022. 3. 21. 18:46
반응형

HTTP란?

HTTP는 서버-클라이언트 모델을 따르면서 리퀘스트, 리스폰스 구조로 웹 상에서 정보를 주고받을 수 있는 프로토콜입니다.

TCP/IP 기반으로 작동하며 가장 큰 특징은 connectionless(비연결)와 stateless(무상태)입니다.

 

*리퀘스트 구조 : 스타트 라인(메서드, path, http버전), 헤더, 바디

*리스폰스 구조 : 스테이터스 라인(http버전, status code, status message), 헤더, 바디

 

'비연결', '무상태'라는 특성은 더 많은 요청을 효율적으로 처리할 수 있도록 돕지만 클라이언트의 상태를 저장하지 않기 때문에 이를 해결하기 위해 쿠키, 세션 등이 사용됩니다.

 

또한 http는 정보를 text형식으로 주고받으므로 데이터 유출을 막기 위해 암호화를 추가한 프로토콜이 HTTPS 입니다.

 

 

 

 

메서드 GET 과 POST의 차이점은? 

get은 서버에게 리소스를 요청할 때 사용하고,

post는 서버에게 데이터 처리를 요청할 때 사용하는 메서드입니다.

 

get은 특정한 정보를 얻기 위해 쿼리 스트링을 추가하여 요청할 수 있고,

post는 전달할 데이터를 바디에 넣어 요청합니다.

 

get은 쿼리 스트링까지 포함하여 브라우저 히스토리에 남고 캐시가 가능하지만,

post는 브라우저 히스토리에 남지 않고 캐시도 불가능합니다.

 

 

 

 

Status code는 무엇인가요?

응답에 대한 간략한 설명이라고 볼 수 있습니다. (세자리 숫자)

적절한 스테이터스 코드를 클라이언트에게 넘겨주면 클라이언트는 스테이터스 코드를 토대로 알맞는 대응을 할 수 있습니다. 

 

 

1xx : 요청을 받았으며 작업을 계속한다.

2xx : 성공적으로 처리하였다.

3xx : 요청을 완료하기 위해 추가 작업이 필요하다. (리다이렉션)

4xx : 클라이언트의 요청에 문제가 있다.

5xx : 서버가 요청을 수행하지 못했다.

 

 

자주사용하는 스테이터스 코드

200 : ok - 성공

201 : create - 생성

400 : bed request - 올바르지 않은 요청

401 : unauthorized - 인증되지 않음

403 : forbidden - 권한이 없음

404 : not fount - 리소스가 없음

500 : bad gateway - 서버에서 예상치 못한 에러가 발생함

 

 

반응형