Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 트랜잭션
- 스프링
- java
- exception
- SQL
- mybatis
- spring boot
- 인터셉터
- Filter
- Spring Security
- 스프링부트
- 디자인패턴
- request
- OOP
- MYSQL
- Spring
- 관점지향프로그래밍
- network
- aspect
- Redis
- 자바
- RestControllerAdvice
- http
- response
- 스프링 시큐리티
- Interceptor
- proxy pattern
- git
- aop
- 객체지향프로그래밍
Archives
- Today
- Total
장쫄깃 기술블로그
[Network] HTTP Request/Response 란 본문
728x90
HTTP(HyperText Transfer Protocol)
HTTP란 텍스트 기반의 통신규약으로 인터넷에서 데이터를 주고받을 수 있는 프로토콜이다. 이러한 규약을 통해 프로그램들이 규악에 맞춰 개발해서 서로 정보를 교환할 수 있게 되었다.
HTTP 동작
클라이언트가 브라우저를 통해서 어떠한 서비스 url을 통하거나 다른 방법으로 요청(request)를 하면, 서버에서는 해당 요청사항에 맞는 결과를 찾아서 사용자에게 응답(response)하는 형태로 동작한다.
HTML 문서만이 HTTP 통신을 위한 유일한 정보 문서는 아니다. Plain text로 부터 JSON 데이터 및 XML과 같은 형태의 정보도 주고 받을 수 있으며, 보통은 클라이언트가 어떤 정보를 HTML 형태로 받고 싶은지, JSON 형태로 받고 싶은지 명시해주는 경우가 많다.
Request/Response
Request
클라이언트가 서버에게 연락하는 것을 요청이라고 하며, 요청을 보낼때는 요청에 대한 정보를 담아 서버로 보낸다.
- Request Method (요청의 종류)
GET, HEAD, POST, PUT, PATCH, DELETE, TRACE, OPTION, CONNECT 등이 있다.
- GET
- 리소스를 검색하고, 반환받기 위해 사용되는 메소드
- 원하는 정보를 서버에 요청할 때 쓰임
- (일반적으로) 리소스의 위치를 URL에서 쿼리로 표현하기 때문에 RequestBody가 없음
- HEAD
- 서버의 각종 정보를 확인하기 위해 사용되는 메소드
- GET과 동일하지만, response에 Body가 없고 response Code와 Head만 응답
- POST
- 요청된 자원을 생성하기 위해 사용되는 메소드
- POST로 정보를 전송하면 URL에 파라미터가 나타나지 않으므로 각종 데이터를 전송하는데 쓰임
- PUT
- 요청된 자원을 수정하기 위해 사용되는 메소드
- PATCH
- 요청된 자원을 수정하기 위해 사용되는 메소드라는 점에서 PUT과 같지만, 해당 자원 전체를 수정하는 PUT과는 다르게 PATCH는 해당 자원의 일부 부분을 수정한다.
- DELETE
- 요청된 자원을 삭제하기 위해 사용되는 메소드
- 클라이언트에서 서버의 자원을 삭제할 수 있도록 허가하는 것은 매우 위험
- 현실적으로 사용될 일이 거의 없고, 대부분의 서버는 이 메소드를 비활성화시킴
- (일반적으로) 삭제 대신 delete flag를 수정하는 방법을 사용
- TRACE
- 루프백 메시지를 호출하기 위해 테스트용으로 사용되는 메소드
- OPTION
- 웹서버에서 지원하는 메소드를 알기 위해 사용되는 메소드
- CONNECT
- 프록시 기능을 요청할 때 사용되는 메소드
Response
서버가 요청에 대한 답변을 클라이언트에게 보내는 것을 응답이라고 한다.
- Status Code (상태 코드)
상태 코드는 크게 5가지 부류로 나눌 수 있다.
- 1xx (조건부 응답) : 요청을 받았으며 작업을 계속한다.
- 2xx (성공) : 클라이언트가 요청한 동작을 수신하여 이해했고 승낙했으며, 성공적으로 처리했음을 가리킨다.
- 3xx (리다이렉션 완료) : 클라이언트는 요청을 마치기 위해 추가 동작을 취해야 한다.
- 4xx (요청 오류) : 클라이언트에 오류가 있음을 나타낸다.
- 5xx (서버 오류) : 서버가 유요한 요청을 명백하게 수행하지 못했음을 나타낸다.
728x90
'ETC > Network' 카테고리의 다른 글
[Network] HTTP 캐시 (캐시란, Cache-Control, 유효성 검증 및 조건부 사용) (0) | 2022.09.12 |
---|---|
[Network] 포워드 프록시와 리버스 프록시 (0) | 2022.09.12 |
[Network] URI, URL, URN 차이 (0) | 2022.04.24 |
[Network] HTTP 상태 코드 정리 (0) | 2022.04.24 |
[Network] HTTP Request/Response 메시지 구조 (0) | 2022.04.18 |