티스토리 뷰
계층형 프로토콜 : 네트워크 프로토콜은 계층 구조를 가지고 있다.
계층 | 역할 |
---|---|
애플리케이션 계층 | HTTP,SMTP,DNS |
트랜스포트 계층 | 데이터 무결성 보증, 커넥션 연결 (TCP, UDP) |
인터넷 계층 | 네트워크에서 데이터를 주고받음, 패킷 단위로 데이터 통신 (IP) |
네트워크 인터페이스 계층 | 물리적인 케이블, 네트워크 어댑터 (이더넷) |
HTTP 메세지
메세지 구조 : start line(request line, status line) + header + blank line + body
- 클라이언트 : 요청 메세지 구축 - 요청 메세지 송신
- 서버 : 요청 메세지 수신 - 요청 메세지 해석 - 애플리케이션 프로그램으로 처리 위임 - 결과 취득 - 응답 메세지 구축 - 응답 메세지 송신
- 클라이언트 : 응답 메세지 수신 - 응답 메세지 해석 - 처리
STATE
State = 애플리케이션의 상태 = session 상태
Stateful
- 서버가 클라이언트 애플리케이션 상태를 기억
- 서버가 여러개면 복수 서버에 상태정보를 동기화 해야하기 때문에 오버헤드가 발생한다.
- 규모 확장이 어렵다.
Stateless
- 클라이언트가 요청 메세지에 필요한 정보를 모두 포함시킨다.
- 서버 시스템이 단순해지고, 시스템을 확장시키는 것이 간단하다.
- 송신할 데이터 양이 많아진다. 인증 등 처리 반복 필요 (퍼포먼스 저하)
- 네트워크 트러블이 발생했을 때 요청 처리 여부 확인이 어렵다.
HTTP 메서드
GET
- 리소스 취득
- 지정한 URI의 정보를 가져온다.
POST
- 서브 리소스 작성
- 기존 리소스에 데이터 추가
- 클라이언트는 리소스의 URI를 지정할 수 없다.
- 다른 메소드로 대응할 수 없는 처리 실행(EX. 긴 키워드)
PUT(U)
- 리소스 갱신
- 리소스 작성
- 리소스의 URI를 클라이언트가 결정
DELETE : 리소스 삭제
멱등(GET,PUT,DELETE) : 조작을 몇번을 반복해도 결과가 동일
안전(GET) : 조작 대상의 리소스의 상태를 변화시키지 않는 것.
STATUS CODE
- 1XX : 처리중
- 2XX : 성공
- 200 OK
- 201 Created
- 3XX : 리다이렉트
- 301 Moved Permanently
- 303 See Other
- 4XX : 클라이언트 에러
- 400 Bad Request
- 401 Unauthorized
- 404 Not Found
- 5XX : 서버 에러
- 500 Internal Server Error
- 503 Service Unavailable
HTTP HEADER
Date : 날짜와 시간
Content-Type : 메시지의 바디 내용이 어떠한 종류인지 미디어 타입으로 나타낸다.
Accept : 클라이언트가 처리할 수 있는 미디어 타입을 서버에 전달
Accept-Charset : 클라이언트가 처리할 수 있는 문자 인코딩을 서버에 전달
Accept-Language : 클라이언트가 처리할 수 있는 언어 태그 서버에 전달
Transfer-Encoding : Chunked를 지정하면 사이즈를 모르는 바디를 조금씩 전송할 수 있다.
캐시 : 서버로부터 가져온 리소스를 로컬 스토리지(하드디스크 등)에 저장하여 재사용하는 방법
Pragma : 캐시를 억제한다. (no-cache - 캐시하지 말 것)
Expires : 캐시의 유효기간
Reference
책 : 웹 개발자를 위한 웹을 지탱하는 기술 (야마모토 요헤이 저)
'dev_note > TIL' 카테고리의 다른 글
Javascript로 UTC Date 구하기 (0) | 2021.08.06 |
---|---|
SQL 레벨업 (0) | 2021.07.11 |
프록시 (0) | 2021.07.10 |
데코레이터 패턴 (0) | 2021.07.10 |
(최근본상품2)Problem Solving (0) | 2019.02.23 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- orphanRemoval
- Spring
- 스프링
- JavaScript
- uploadfive
- Nullable
- 자바의 정석
- 고아 객체
- default interface
- DataAnnotation
- c#
- 스프링 부트 테스트
- SpringBoot
- 영속성
- 빌더 패턴
- 다이내믹 프록시
- Java
- JpaRepository
- jQuery
- spring boot
- 준영속
- OWIN
- C# 문법
- 토비의 스프링
- MSSQL
- Effective Java
- JPA
- @Modifying
- 스프링MVC
- ASP.NET
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함