코드로 우주평화
HTTP(Hyper Text Transfer Protocol)를 알아보자 본문
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 - 서버에서 예상치 못한 에러가 발생함
'나는 이렇게 학습한다 > CS' 카테고리의 다른 글
Refrsh token을 구현하며 느낀 점 (1) | 2022.04.19 |
---|---|
로그인시 Access Token, Refresh Token 보내주기 (0) | 2022.04.13 |
TCP와 UDP 비교 (0) | 2022.03.20 |
메모리 단편화를 해결하는 세 가지 방법 (0) | 2022.02.09 |
동시성(병행성) vs 병렬성 (0) | 2022.01.16 |