CH5-05. HTTP 메세지 개관
HTTP 요청 헤더 - Start-line
- HTTP 메서드(공백) 요청 대상(공백)HTTP 버전(개행)
HTTP 메서드 : 서버에게 요청할 동작(해당 자원으로 어떤 동작을 요청할지)
- GET : 자원 조회(”갖다줘”)
- POST : 요청할 데이터 처리(”이 데이터 처리해줘”)
- PUT : 자원 덮어쓰기
- PATCH : 자원 부분 변경
- DELETE : 자원 삭제
이외에도 HEAD, OPTIONS, TRACE, CONNECT
GET 요청
- 리소스 조회에 사용
- 일반적으로 쿼리 문자열을 사용하되, 본문은 없음(message body X)
- “갖다줘”
POST 요청
- 메세지 본문으로 처리할 데이터 전송
- 메세지 본문에 해당하는 데이터 처리하도록 요청
- 어떻게 처리할지는 서버가 결정(ex : 새 자원 생성, 가공)
PUT 요청
- 자원 덮어쓰기
- 자원이 있다면 본문으로 보낸 데이터로 대체
- 자원이 없다면 본문으로 보낸 데이터로 생성
- “이 자원으로 대체해줘”
PATCH 요청
- 자원의 일부분 변경
DELETE 요청
- 자원 삭제
안전 : 이 메서드를 수행하면 자원의 변경이 이루어질 수 있는가?
→ POST, PUT, DELETE는 삭제를 하기 때문에 안전하지 않다.
멱등성 : 여러 번 동일한 요청을 보내도 첫 요청 결과와 같은가
→ POST : 회원 가입 → 아이디 생성 → 중복되면 → 이미 가입된 회원 → 첫 요청 결과와 달라진다.
캐시 가능성 : 응답 결과를 캐시해서 사용할 수 있는가
요청 대상 : 요청할 자원의 위치
HTTP 버전 : HTTP1,1, HTTP 2.0
HTTP 응답 헤더 - Start line
- HTTP 버전(공백)응답코드(공백)이유문구(개행)
응답 코드
- 2XX : 성공, 200 : ok
- 3XX : 리다이렉션(이 요청을 처리하려면 추가적인 처리가 필요함)
→ 서버에서 요청에 대해 리다이렉션 응답을 보낼때 location 헤더로 특정 위치를 알려주면 그 위치로GET 요청 → 새로운 링크로 자동으로 옮겨지는 리다이렉션
- 4XX : 클라이언트 오류, 요청이 잘못되었다, 404 not found
- 5XX : 서버 오류, 서버 문제
2XX 상태 코드
- 200 OK : 요청 성공(GET)
- 201 Created : 요청 성공, 새로운 자원 생성됨(POST)
- 202 Accepted : 요청 성공, 처리는 아직 미완료
- 204 No Content : 요청 성공, 응답할 데이터 없음
3XX 리다이렉션 상태 코드
- 응답의 Location 헤더를 통해 특정 위치로 이동
- 위치로 GET 요청
4XX 상태 코드 : 클라이언트에 의해 생긴 오류
- 401 Unauthorized : 미인증
- 403 Forbidden : 금지된 자원에 접근( 자원에 접근할 권한이 없음)
- 404 Not Found : 요청한 자원 없음( 공개한 자원이 아님)
5XX 상태 코드 : 서버에 의한 오류
- 500 Internal Server Error : 서버 오류
- 503 Service Unavailable : 현재 이용 가능하지 않음
'개발 > Network' 카테고리의 다른 글
캐시 (0) | 2024.01.31 |
---|---|
HTTP 헤더 (0) | 2024.01.31 |
HTTP의 특성 (0) | 2024.01.31 |
웹 서버와 웹 어플리케이션 서버 (0) | 2024.01.31 |
자원과 자원의 식별 (0) | 2024.01.31 |