HTTP는 인터넷에서 데이터를 주고 받을 수 있는 통신규약 입니다. 통신 방식으로는 client가 요청하면 서버에서 응답하여 정보를 전송하고 곧바로 연결을 종료하는 방식 입니다.
HTTP는 웹에서 브라우저와 서버간에 데이터를 주고 받는 통신규약 입니다. HTTP는 세 가지의 약점이 있습니다.
위 세 가지를 보완한 것이 HTTPS입니다. HTTPS는 SSL 또는 TLS을 이용하여 주고 받는 데이터들을 암호화, 복호화 하여 통신하는 안정성을 갖춘 프로토콜 입니다.
포트 번호를 이용하여 주소를 지정한다.
데이터 오류를 체크 한다.
TCP는 연속성보다는 신뢰성 있는 전송이 중요할 때 사용되는 프로토콜이며 UDP는 빠르고 연속성이 중요할 때 사용되는 프로토콜입니다.
먼저 TCP란 연결 지향형 프로토콜로 연속성 있는 데이터 패킷을 주고 받을 때 사용합니다. TCP 3 way handshake는 연결하고자 하는 두 장치 간의 논리적 접속을 성립하기 위해 사용하는 연결 확인 방식으로 3번의 확인 과정을 거친다고 해서 TCP 3 way handshake라고 합니다. 단계적으로는
- 클라이언트가 연결요청 메세지 SYN(Synchonize Sequence Number)라는 임의의 랜덤 숫자를 전송합니다.
- 서버가 요청을 수락하며 ACK(Acknowledgement number)와 전달받은 SYN번호에 +1을 하여 전송합니다.
- 서버에게 받은 메세지를 클라이언트가 ACK에 받은 Sequence number +1을 하여 전송합니다.
네트워크 통신이 일어나는 과정을 7단계로 나눈 것으로 물리 계층, 데이터링크 계층, 네트워크 계층, 전송 계층, 세션 계층, 프레젠테이션 계층, 애플리케이션 계층으로 나뉘어져 있습니다.
- 물리 계층 : 주로 전기적, 기계적, 기능적인 특성을 이용해서 통신 케이블로 데이터를 전송하는 물리적인 장비
- 데이터링크 계층 : 물리계층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한 통신의 흐름을 관리
- 네트워크 계층 : 데이터를 목적지까지 가장 안전하고 빠르게 전달
- 전송 계층 : port번호 전송방식을 결정
- 세션 계층 : 프로세스 및 통신하는 호스트 간의 연결 유지
- 프레젠테이션(표현) 계층 : 전송하는 데이터의 표현방식을 결정
- 애플리케이션(응용) 계층 : 최종 목적지로 응용 프로세스와 직접 관계하여 일반적인 애플리케이션 서비스 수행
TCP/IP 계층과 달리 OSI 계층은 애플리케이션 계층을 세개로 쪼개고 링크 계층을 데이터링크 계층, 물리 계층으로 나눠서 설명하는 것이 다르며 인터넷 계층을 네트워크 계층으로 부른다는 점이 다릅니다.
Base64 인코딩은 64진법의 의미를 가지고 있는데 2의 6제곱으로 64개의 아스키코드 문자들로 표시할 수 있는 가장 큰 진법이고 주로 데이터 교환에 많이 쓰이고 있습니다.
IP주소를 우리가 흔히 알고 있는 인터넷 주소 예를 들어서 www.naver.com과 같은 인터넷 주소들을 도메인 이름이라고 합니다. 그리고 이런 도메인 이름을 해당 IP주소로 읽어들일 수 있게 끔 하는 것이 DNS(Domain Name System) 입니다. DNS로 영어나 한글로 되어 있는 인터넷 주소를 IP주소로 읽어들 일 수 있게 하는 것 입니다.
GET은 서버의 리소스에서 데이터를 요청할 때 POST는 서버의 리소스를 새로 생성하거나 업데이트할 때 사용합니다. 그리고 GET은 파라미터에 요청하는 데이터를 담아 보내기 때문에 응답 시 Body가 없고 POST는 Bodt에 데이터를 담아 보내기 때문에 응답 시 Body가 있습니다. 그렇기 때문에 GET은 여러 번 요청을 해도 응답 결과가 똑같을 것이고, POST는 응답 결과가 다를 것 입니다.