02.04 HTTP, OSI, TCP/IP 특강 (TIL)
2023. 2. 4. 10:46ㆍ개발일지
비연결성
연결이 계속 되면 리소스가 무리가 가기 때문에 응답을 받으면 끊습니다.
GET - 리소스 조회(Read)
쿼리스트링 : ?key=Value&key=Value
ex: ?title=항해&username=진유진
POST - 리소스 생성(Create)
data -> body(바디) -> sever
PUT - 리소스 수정 (Update)
기존에 데이터를 요청된 데이터로 덮어씌우기, 없으면 생성합니다.
PATCH - 리소스 수정 (Update)
데이터의 일부분을 변경하고자 할 때 사용합니다.
자주 쓰이는 상태코드들
200 OK : 응답 성공
302 Redirect : 리다이렉트 됨
400 Bad Request : 잘못된 요청
401 Unauthorized : 인증 오류
403 Forbidden : 접근 권한 없음
404 Not Found : 리소스 없음
405 Method Not Allowed : 요청이 허용되지 않은 메소드
415 Unsupported Media Type : 지원되지 않는 미디어 포맷
500 Internal Server Error : 서버 내부 문제
502 Bad Gateway : 서버 통신 장애 에러
503 Service Unavailable : 일시적으로 서비스 이용 불가
504 Gateway Timeout : 서버에서 요청을 처리하지 않고 연결을 닫음
OSI 7계층
OSI를 7계층을 나눈 이유는?
- 계층을 나눈 이유는 통신이 일어나는 과정이 단계별로 파악할 수 있기 때문입니다. 7단계 중 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건들이지 않고도 이상이 생긴 단계만 고칠 수 있기 때문입니다.
- 위 그림과 같이 각 계층을 지날 때마다 각 계층에서 Header가 붙게되며 수신측은 역순으로 헤더를 분석하게 됩니다.
1계층 - 물리계층(Physical Layer)
- 주로 전기적, 기계적, 기능적인 특성을 이용해서 통신 케이블로 데이터를 전송하는 물리적인 장비입니다.
- 단지 데이터 전기적인 신호(0,1)로 변환해서 주고받는 기능만 할 뿐입니다.
- 이 계층에서 사용되는 통신 단위 : 비트(Bit)이며 1과 0으로 나타내어지는,즉 전기적으로 On, Off 상태입니다.
- 장비 : 통신 케이블, 리피터, 허브등 있습니다.
2계층 - 데이터 링크계층(DataLink Layer)
- 물리계층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한 통신의 흐름을 관리합니다
- 프레임에 물리적 주소(MAC address)를 부여하고 에러검출, 재전송, 흐름제어를 수행합니다.
- 이 계층에서 전송되는 단위 : 프레임(Frame)
- 장비 : 브리지, 스위치, 이더넷 등(여기서 MAC주소를 사용)이 있습니다.
(브릿지나 스위치를 통해 맥주소를 가지고 물리계층에서 받은 정보를 전달합니다.)
3계층 - 네트워크 계층(Network Layer)
- 데이터를 목적지까지 가장 안전하고 빠르게 전달합니다.
- 라우터(Router)를 통해 경로를 선택하고 주소를 정하고(IP) 경로(Route)에 따라 패킷을 전달하면 IP 헤더가 붙습니다.
- 이 계층에서 전송되는 단위 : 패킷(Packet)
- 장비 : 라우터
4계층 - 전송 계층(Transport Layer)
- port 번호, 전송방식(TCP/UDP) 결정 > TCP 헤더 붙음
- TCP : 신뢰성, 연결지향적
- UDP : 비신뢰성, 비연결성, 실시간
- 두 지점간의 신뢰성 있는 데이터를 주고 받게 해주는 역할입니다
- 신호를 분산하고 다시 합치는 과정을 통해서 에러와 경로를 제어합니다.
5계층 - 세션 계층(Session Layer)
- 주 지점간의 프로세스 및 통신하는 호스트 간의 연결 유지합니다
- TCP/IP 세션 체결, 포트번호를 기반으로 통신 세션 구성합니다.
- API, Socket
6계층 - 표현 계층(Presentation Layer)
- 전송하는 데이터의 표현방식을 결정합니다. (ex: 데이터변환, 압축, 암호화 등)
- 파일인코딩, 명령어를 포장, 압축, 암호화
- JPEF, MPEG, GIF, ASCII 등
7계층 - 응용 계층(Application Layer)
- 최종 목적지로, 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행합니다. (ex: explore, chrome 등)
- HTTP, FTP, SMTP, POP3, IMAP, Telnet 등과 같은 프로토콜이 있습니다.
TCP/IP 4계층
OSI 7계층보다 먼저 나온 규격이나 현재 더 많이 활용 됩니다.
1계층 - 네트워크 엑세스 계층(Network Access Layer)
- OSI 7계층의 물리계층(1)과 데이터 링크 계층(2)에 해당합니다
- TCP/IP 패킷을 네트워크 매체로 전달하는 것과 네트워크 매체에서 TCP/IP 패킷을 받아들이는 과정을 담당합니다
- 에러 검출 기능(Detecting errors), 패킷의 프레임화(Fraimg packets)
- 네트워크 접근 방법, 프레임 포맷, 매체에 대해 독립적으로 동작하도록 설계합니다
- 물리적인 주소로 MAC을 사용합니다
- LAN, 패킷망, 등에 시용됩니다.
2계층 - 인터넷 계층(Internet Layer)
- OSI 7계층의 네트워크 계층(3)에 해당합니다
- 어드레싱(addressing), 패키징(packaging), 라우팅(routing) 기능을 제공합니다.
- 네트워크상 최종 목적지까지 정확하게 연결되도록 연결성을 제공하게 됩니다.
- 프로토콜 종류 - ARP, RARP
3계층 - 전송 계층(Transport Layer)
- OSI 7계층의 전송 계층(4)에 해당합니다.
- IP와 Port를 이용하여 프로세스와 통신합니다.
- 애플리케이션 계층의 세션과 데이터그램(datagram) 통신서비스를 제공합니다.
- 통신 노드 간의 연결을 제어하고, 신뢰성 있는 데이터 전송을 담당합니다.
- 프로토콜 종류 - TCP, UDP
4계층 - 응용 계층(Application Layer)
- OSI 7계층의 세션 계층(5), 표현 계층(6), 응용 계층(7)에 해당합니다.
- 프로그램(브라우저)가 직접 인터액트하는 레이어, 데이터를 처음으로 받는 곳입니다.
- 다른 계층의 서비스에 접근할 수 있게 하는 애플리케이션을 제공합니다.
- 애플리케이션들이 데이터를 교환하기 위해 사용하는 프로토콜을 정의합니다
- HTTP, SMTP등의 프로토콜을 가집니다.
- TCP/UDP 기반의 응용 프로그램을 구현할 때 사용합니다.
- 프로토콜 종류 - FTP, HTTP, SSH
'개발일지' 카테고리의 다른 글
02.07 TIL (0) | 2023.02.07 |
---|---|
02.06 JPA 기초 (0) | 2023.02.06 |
02.03 Database 와 SQL (0) | 2023.02.03 |
02.03 SpringBoot 및 서버 이해 (0) | 2023.02.03 |
02.03 웹 동작방식 이해하기 (0) | 2023.02.03 |