CS 지식 TIL (5) - 네트워크

YulHee Kim·2021년 8월 16일
0

CS

목록 보기
5/9
post-thumbnail
post-custom-banner

💡 네트워크 정리

1. HTTPS에 대해서 설명하고 SSL Handshake에 대해서 설명해보세요.


  • 인터넷 콘텐츠를 전달하는 TCP 프로토콜의 일종인 HTTP에 S(Secure) 기능을 더한 것입니다. HTTPS는 SSL(Secure Socket Layer)/TLS(Transport Layer Security) 전송 기술을 사용합니다. TCP,UDP와 같은 일반적인 인터넷 통신에 안전 계층을 추가하는 방식이며 이 기술을 구현하기 위해 웹 서버에 설치하는 것이 SSL/TLS 인증서 입니다.

    SSL 핸드 셰이크 과정

    1) 클라이언트 - 클라이언트가 먼저 서버에 접속해서 말을 겁니다.

    2) 서버 - 서버 또한 위의 인사에 응답하며 다음 정보를 클라이언트에 제공합니다.

    • 브라우저의 암호화 방식 정보 중에서 서버가 지원하고 선택한 암호화 방식
    • 서버의 공개키가 담긴 SSL 인증서. 인증서는 CA의 비밀키로 암호화되어 발급된 상태입니다.
    • 서버가 순간적으로 생성한 임의의 난수(숫자)
    • 클라이언트 인증서 요청(선택 사항)

    3) 클라이언트 - 브라우저는 서버의 SSL 인증서가 믿을만한지 확인합니다.

    4) 클라이언트 - 브라우저는 자신이 생성한 난수와 서버의 난수를 사용하여 premaster secret을 만듭니다.

    5) 서버/클라이언트 - SSL handshake를 종료하고 드디어 HTTPS 통신을 시작합니다.

2. GET과 POST의 차이점에 대해서 설명해보세요.


  • get과 post 방식의 request는 서버로 본인이 가지고 있는 data를 전달하기 위해 사용합니다. data를 전달한다는 본질적인 기능적 측면에서는 같지만 구별해서 사용합니다. 세부적으로 보안, 전달형식, 전달할 수 있는 data의 양에 따라 차이점이 발생하기 때문입니다.

- Get은 입력한 정보가 url에 노출되고, 정보를 보여줘도 상관없는 기능을 수행할 때 get 메소드를 수행하게 됩니다.

[Get 방식 특징]
1. 한번의 데이터 요청시 전송 데이터 양은 주소값 + 파라미터로 255자로 제한이 됩니다.
2. 저장된 data를 단순히 요청할 때 사용한다.
3. URL에 그대로 query의 이름과 값이 연결되어 표현된다.

- Post는 입력한 정보를 숨겨서 로그인 상황이나, 중요한 데이터를 보내는 상황에서 수행하게 됩니다.

[Post 방식 특징]
1. 요청시 데이터 양의 제한이 없습니다.
2. url상에 나타나지 않아 보안상 좋습니다.

결론 !

get은 서버에서 어떤 데이터를 가져와서 보여줄 때 사용합니다. 어떤 값이나 내용, 상태 등을 바꾸지 않는 경우에 사용을 하는 것입니다. ex) 글목록 조회, 글조회

post는 서버상의 데이터 값이나 상태를 바꾸기 위해서 사용합니다. ex) 글쓰기, 글수정

3. HTTP 메서드와 이것이 하는 역할에 대해서 설명해보세요.


  • HTTP 메서드는 클라이언트가 하고 싶은 처리를 서버에게 전하는 역할을 합니다. 메서드는 총 8개가 존재합니다.

    1. GET: 서버로부터 데이터를 취득
    2. POST: 서버에 데이터를 추가, 작성 등
    3. PUT: 서버의 데이터를 갱신, 작성 등
    4. DELETE: 서버의 데이터를 삭제
    5. HEAD: 서버 리소스의 헤더(메타 데이터의 취득)
    6. OPTIONS: 리소스가 지원하고 있는 메소드의 취득
    7. PATCH: 리소스의 일부분을 수정
    8. CONNECT: 프록시 동작의 터널 접속을 변경

4. RESTful이란 무엇이며, 이것에 대해서 아는대로 설명해보세요.


    1. REST란

      REST(Representational State Transfer)의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미합니다.

      (1) HTTP URI를 통해 자원(Resource)을 명시하고,

      (2) HTTP Method(POST, GET, PUT, DELETE)를 통해

      (3) 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미합니다

      [REST 구성 요소]

      (1) 자원 : HTTP URI

      (2) 자원에 대한 행위 : HTTP Method

      (3) 자원에 대한 행위의 내용 : HTTP Message Pay Load

    1. REST API란

      REST API란 REST의 원리를 따르는 API를 의미합니다. REST API를 올바르게 설계하기 위해서는 지켜야 하는 몇가지 규칙이 있습니다.

      (1) URI는 동사보다는 명사를, 대문자보다는 소문자를 사용

      (2) 마지막에 슬래시를 포함하지 않는다

      (3) 언더바 대신 하이폰을 사용한다

      (4) 파일 확장자는 URI에 포함하지 않는다

      (5) 행위를 포함하지 않는다

    RESTful이란 REST의 원리를 따르는 시스템을 의미합니다. 하지만 REST를 사용했다하여 모두가 RESTful한 것은 아닙니다. REST API의 설계 규칙을 올바르게 지킨 시스템을 RESTful하다 말할 수 있습니다.

출처)
https://brunch.co.kr/@sangjinkang/38
https://ideveloper2.tistory.com/61
https://velog.io/@josworks27/HTTP-Request-정리
https://khj93.tistory.com/entry/네트워크-REST-API란-REST-RESTful이란

profile
백엔드 개발자
post-custom-banner

0개의 댓글