본문 바로가기
개발 관련 강의 정리/10분 테코톡

[10분 테코톡] 🐬히로의 웹 요청과 응답 정리

by 코딩개발 2023. 4. 27.
728x90
반응형

데이터를 주고받는 약속 : TCP/UDP

TCP

연결 : 3-way

연결 끊을 때 : 4-way

 

HTTP (HyperText Transfer Protocol)

TCP와 IP 주소 기반으로 위에서 돌아가는 프로토콜

 

HTTP의 특징

단방향성 : 클라이언트가 서버로 요청을 보내고 이에 대한 응답을 받는 단방향적 통신(서버가 클라이언트로 먼저 요청을 보낼수 없음)

비연결성 : 연결이 계속 유지되지 않고 요청에 대한 응답이 끝나면 연결을 끊음(소켓 통신과 반대되는 특징)

무상태성 : 클라이언트가 서버와 연결된 상태가 아니기 때문에 기본적으로 상태를 가지지 않음

                  이를 보완하기 위해 쿠키, 세션, 토큰 등 사용

 

HTTP 응답 코드

2XX : 성공. 요청이 정상적으로 이루어졌음

3XX : 리다이렉션. 요청을 완료하기 위해 다른 주소로 이동해야 함

4XX : 클라이언트 오류. 올바르지 않은 요청

5XX : 서버 오류. 올바른 요청에 대해 서버의 문제로 응답 불가능

 

API란? 해당 프로그램의 구현을 알지 않아도 프로그램이 제공하는 기능을 쓸 수 있도록 한 인터페이스

 

REST(REpresental State Transfer) - 표현상태정송

1. 클라이언트-서버의 기능은 완벽히 분리

2. 무상태

요청을 통해 클라이언트의 '상태'를 서버에 저장해선 안 된다. 대신 캐시나 JWT등을 이용

3. 캐시처리 기능

클라이언트는 응답을 캐싱할 수 있어야 한다. 이는 클라이언트가 같은 자료를 중복 요청하는 것을 막아 서버의 부담을 줄여줄 수 있다.

4. 계층화

서버와 클라이언트 사이에 캐시 서버나 로드 밸런서 등의 중간 서버를 둘 수 있다. 클라이언트는 대상 서버에 직접 연결되었는지, 혹은 중간 서버에 연결되었는지 알 수 없다.

5. Code on demand

서버는 클라이언트가 직접 실행시킬 수 있는 로직을 전송할 수 있다.

6. 인터페이스 일관성(Uniform Interface)

- 각각의 요청은 URI등으로 식별된다. 서버가 가지고 있는 리소스는 클라이언트로의 요청과는 구별된다.

- 클라이언트는 서버로부터 전송받악 가지고 있는 정보만드로 리소스를 변경하거나 삭제할 수 있다.

client가 GET요청으로 회원정보를 받아 수정한뒤 PUT, DELETE를 보낼 수 있어야 한다.

 - 각각의 요청은 처리 방법에 대한 충분한 정보를 담고 있다.

ex) GET /board/1 이라는 요청만으로도 '게시판의 1번 게시글을 읽는다'라은 의미 전달이 된다.

- HATEOAS 해당 리소스에 대해 할 수 있는 모든 동작에 대한 URI를 제공한다.

 

REST API

1. 슬래시(/)로 계층 관계를 나타냄

2. URI를 이루는 리소스명은 동사보다는 명사로

3. 언더바(_), 대문자, 파일 확장자는 URI에 포함X

4. 리소스에 대한 행위는 HTTP 메소드 이용(GET, POST, PUT, DELETE)


참고

https://www.youtube.com/watch?v=xz7e-GL2g6g&ab_channel=%EC%9A%B0%EC%95%84%ED%95%9C%ED%85%8C%ED%81%AC 

728x90
반응형

댓글