오늘은 부트캠프 20일차이다. 오전에 은행 관리 시스템에 대한 두 번째 프로젝트를 진행하는 날이었고, 다음주 화요일날에 발표를 하기에 최대한 오늘 다 끝낸다는 목표로 삼고 오후에 거의 다 끝낸 상태이며, 발표 전날에 마지막으로 프로그램을 실행 시켜보고 최종 마무리를 하지 않을까 싶다. 저녁에는 HTTP, HTTPS에 대한 컴퓨터 기초에 관련된 강의를 듣게 되었다.
오늘 배운 것
1. HTTP(HyperText Transfer Protocol)
-클라이언트와 서버 간의 자원을 교환하기 위한 TCP/IP 기반 통신 프로토콜(규약, 약속)
2. HTTP의 특징
-단방향성 : 서버가 먼저 응답을 보낼 수 없고 클라이언트가 요청을 보내야만 응답할 수 있다.
-비연셜성(connectionless) : 클라이언트의 요청으로 서버와 연결된 후, 요청에 대한 응답의 데이터를 전송하면 연결을 종료한다.
-따라서, 실시간 통신을 할 수 있다.3. HTTP의 문제점
-HTTP는 평문 통신이기 때문에 도청이 가능하다.
-통신 상대가 검증된 상대인지 확인인지 않기 때문에 위장이 가능하다.
-완전성을 증명할 수 없기 때문에 변조가 가능하다.
-이러한 문제점을 해결하기 위해 HTTPS가 등장한다.4. 웹소켓(WebSocket)
-TCP 기반의 통신 프로토콜이며, 데이터 전송이 끝나고 연결을 해제하지 않고 양방향 통신이 가능하다는 특성이 있다.
-채팅같은 실시간 통신이 필요한 서비스에서 사용한다.5. HTTP/1 (HTTP 버전 1.1)
-전세계적으로 가장 많이 사용하는 것
6. HTTP 메소드
-클라이언트가 웹 서버에게 요청의 목적이나 종류를 알리는 수단
7. 주요 메소드 5가지
-GET : 보통 리소스를 조회할 때 사용하며, 서버에 전달하고 싶은 데이터는 query를 통해서 전달한다. 메시지 바디를 사용해서 데이터를 전달 할 수 있지만, 지원하지 않는 곳이 많아서 권장하지 않는다.
-POST : 주로 리소스를 새롭게 생성할 때 사용하며, 데이터는 메시지 바디를 통해 전달한다.
-PUT : 리소스가 있으면 대체하고 없으면 생성한다. 즉 데이터를 덮어쓴다.
-PATCH : PUT과 마찬가지로 리소스를 수정할 때 사용하지만, PATCH는 리소스를 일부분만 변경한다.
-DELETE : 리소스를 제거할 때 사용8. 메소드 속성
-안전 : 리소스를 변경하지 않는 특성
-멱등 : 동일한 요청을 여러 번 보내는 것과 한 번 보내는 것과 같은 것(GET, PUT, DELETE는 멱등하다 / POST, PATCH는 멱등하지 않다.)
-캐시가능 : 응답 결과를 서버에 캐시 해서 사용해도 되는 메소드(GET과 HEAD만 주로 캐싱이 쓰인다.)9. HTTP 통신흐름
-WWW.NAVER.COM을 친다.
-->도메인 네임 부분을 DNS 서버에 검색, IP주소를 찾아온다.
-->HTTP 요청 메세지를 생성, TCP 프로토콜을 사용하여 인터넷 망을 통해 해당 IP주소의 컴퓨터로 전송.
--> 웹 페이지 URL 정보 중 PATH와 HTTP Method에 맞는 액션을 취한다.
-->HTTP응답 메세지로 만들어지고 요청했던 컴퓨터(클라이언트)로 전송.
--> 사용자가 볼 수 있음.10. HTTPS
-SSL/TLS 프로토콜을 사용해 HTTP를 암호화하여 주고 받을 때 쓰는 통신 프로토콜
-암호화에는 비대칭키 방식(전자 서명, 메세지 송신)과 대칭키 방식이 있다.