📍 HTTP
- Server - Client 모델로 Request/Response 사용
- 클라이언트에서 요청(Request) 보내면 서버에서 응답(Response)를 준다.
- HTTP는 1회성 Request/Response - (Connectionless)
HTTP 는 Stateless, Connectionless 하다 -> 통신이 끝나면 상태를 유지하지 않는다.
이를 보완하기 위한 기법이 쿠키와 세션이다.
쿠키의 경우 tcp 아스키 코드로 이루어져 있어 해커가 tcp를 까볼경우 전달한 정보를 알아채기 쉽다. 세션은 서버에서 별도의 암호화 문자열을 쿠키에 저장한다.
📍 HTTP 1.1 (개선된 버전)
- Keepalive 기능으로 keepalive timeout 까지는 연결과정없이 데이터 송수신 가능
- 매번 TCP 3-way handshake 과정을 거칠 필요가 없어짐
📍 HTTP Method
-
GET : 정보읽기 (SELECT) : 전달이 필요한 파라미터들은 URL을 통해 전달
-
POST : 정보 입력하기 (INSERT) : 전달이 필요한 파라미터들은 Request Protocol 에 Request-Body 에 넣어서 보내짐
-
PUT : 정보 수정하기 (UPDATE)
-
DELETE : 정보 삭제하기 (DELETE)
📍 HTTP Status Code
| 코드 | 설명 | 코드 | 설명 |
|---|
| 200 | 정상 | 401 | 승인되지 않은 엑세스 |
| 400 | 유효하지 않은 파라미터 또는 잘못된 요청 | 403 | 엑세스 금지 |
| 404 | 리소스를 찾을수 없음 | 500 | 내부 서버 오류 |
📍 HTTPS
📍 REST
- 자원의 표현에 의한 상태 전달
- HTTP URI를 통해 자원을 명시하고, HTTP Method를 통해 자원에 대한 CRUD operation 적용
- CREATE : 생성 (POST)
- READ : 조회 (GET)
- UPDATE : 수정 (PUT)
- DELETE : 삭제 (DELETE)
- REST API : REST 기반으로 서비스 API 구현
📍 REST API
개발자들 사이에서 비공식적으로 가이드한 REST 구현 가이드
URL Rules
- 마지막에 '/' 포함하지 않는다.
- under bar '_' 대신 dash '-' 사용
- 소문자 사용
- 메서드는 URL에 포함하지 않는다.
📍 DNS (Domain Name System) 프로토콜
- 도메인 이름을 IP주소로 변환 또는 그 반대를 수행하기 위해 개발
- 전세계 흩어진 DNS 서버를 통해 도메인 이름 , IP 주소 정보 확인 가능
- DNS는 Network Protocol로 UPD 사용
📍 메일 서버 (SMTP 와 POP3)
- SMTP - 메일 송신, 25 or 587 port
- POP3 - 메일 수신 / 메일 수신 프로토콜 (IMAP , POP3)
- IMAP (143 포트) : 중앙 서버에서 메일 동기화
- POP3 (110 포트) : 중앙 서버에서 로컬 장치로 이메일을 내려받음
📍 FTP 프로토콜
- 서버와 클라이언트 사이의 파일 전달을 위한 프로토콜
- 접속(21포트) 전송(보통 20포트) 2개의 포트 사용
📍 웹 브라우저의 동작 과정
- 웹 브라우저에 입력된 URL은 DNS 프로토콜을 사용, IP주소로 변환
- HTTP Request를 생성, 운영체제 네으워크 스택을 따라 HTTP -> TCP -> IP -> ETHERNET을 전기 신혼로 변환, 전송
- HTML 파일 파싱하여 DOM Tree 생성, css 정보를 파싱하여 CSSOM tree 생성
- DOM tree, CSSOM tree 기반 Render tree 생성
- Render tree 기반 Rendering