오늘의 공부(21)

주방·2022년 8월 1일
1

Swift

목록 보기
12/17
post-thumbnail

#1. 네트워크

가. HTTP

  • Hyper Text Transfer Protocol

  • 인터넷에서 데이터를 주고 받을 수 있는 약속을 뜻한다.

  • 하이퍼텍스트를 빠르게 교환하기 위한 프로토콜의 일정으로, 서버와 클라이언트 사이에서 어떻게 메세지를 교환할지 정해 놓은 규칙이다. 요청(request)과 응답(Response)으로 구성되어 있으며, 일반적으로 80번 포트를 사용한다.

    가) HTTP 통신의 특징

    • 요청(request)과 응답(response)으로 구성되어 있고, 클라이언트가 요청을 하면 서버가 응답을 하는 구조로 되어 있다. HTTP는 FTP나 텔넷과 다르게 비연결식이다. FTP나 Telnet은 클라이언트가 서버에 정보를 요청해도 서버가 클라이언트와 연결을 끊지 않지만, HTTP는 클라이언트가 서버에 정보를 요청하면 응답 코드와 내용을 전송하고 클라이언트와 연결을 종료한다. 예를 들어 접속하면 클라이언트는 GET 명령을 서버에 전송한다. GET 요청을 받은 응답 코드와 메세지를 전송하고, 그것을 화면에 뿌려준다.

    나) 상태코드(Status Code)

    • HTTP 응답코드를 정리하는 문서
      • 1XX
        • 정보 전달: 요청을 받았고, 작업을 진행중이라는 의미
        • 100(Continue), 101(Switching Protocols), 102(Processing), 103(Early Hints)
      • 2XX
        • 성공: 이 작업을 성공적으로 받았고, 이해했으며, 받아들여졌다는 의미이다.
        • 200(OK), 204(No content - 성공적 처리, 컨텐츠는 제공하지 않음), 206(Partial Content - 컨텐츠의 일부분만 제공. 보통 클라이언트에서 시작 범위나 다운로드할 범위를 지정한 경우 자동으로 해당 부분만 제공할 때 사용하는 코드)
      • 3XX
        • 리다이렉션: 이 요청을 완료하기 위해 리다이렉션이 이뤄져야 한다.
        • 301(Moved Permantly - 영구적 이동), 302(Found - 일시적으로 컨텐츠 이동)
      • 4XX
        • 클라이언트 오류
        • 400(Bad Request), 401(Unauthorized), 403(Fobidden - 거부됨, 서버가 요청을 거부할 때), 404(Not Found - 찾을 수 없음), 408(Request Timeout - 요청 시간 초과)
      • 5XX
        • 서버오류, 서버가 응답할 수 없다는 의미
        • 500(Internal Server Error - 내부서버 오류), 502(Bad Gateway - 게이트웨이 불량), 503(Service Temporarily Unavailable - 일시적 서비스를 이용할 수 없음), 504(Gateway Timeout - 게이트웨이 시간초과)

    다) HTTP 메시지

    • GET: 클라이언트가 서버에게 URL에 해당하는 자료의 전송을 요청
    • HEAD: GET 요청으로 반환될 데이터 중 헤더 부분에 해당하는 데이터만 요청
    • POST: 클라이언트가 서버에서 처리할 수 있는 자료를 보낸다. 예를 들어, 게시판에 글을 쓸 때 클라이언트의 문서가 서버로 전송되어야 한다.
    • PATCH: 클라이언트가 서버에게 지정한 URL의 데이터를 부분적으로 수정할 것으로 요청
    • PUT: 클라이언트가 서버에게 지정한 URL에 지정한 데이터를 저장할 것을 요청
    • DELETE: 클라이언트가 서버에게 지정한 URL의 정보를 제거할 것을 요청
    • TRACE: 클라이언트가 서버에게 송신한 요청의 내용을 반환해줄 것을 요청
    • CONNECT: 클라이언트가 특정 종류의 프록시 서버에게 연결을 요청
    • OPTIONS: 해당 URL에서 지원하는 요청의 목록을 요청

    라) HTTPS?

    • TLS를 사용해 암호화된 연결을 하는 HTTP를 HTTPS(HTTP Secure)라고 하며, 기본 포트는 80번가 아닌 443번을 쓴다.
    • TLS는 다양한 종류의 보안 통신을 하기 위한 프로토콜이며, HTTPS는 TLS위에 HTTP 프로토콜을 얹어 보안된 HTTP 통신을 하는 프로토콜이다. 다시 말해 TLS는 HTTP뿐만 아니라, FTP, SMTP와 같은 여타 프로토콜에도 적용할 수 있으며, HTTPS는 TLS와 HTTP가 조합된 프로토콜만을 가리킨다.


#2. Assignment



#3. 회고

  • 서버 통신은 통해 다양한 데이터를 받아올 수 있으며, 뷰에 표시할 수 있는 내용이 다양함을 알 수 있었음.
  • UILabel 내 텍스트 입력시 긴 문자일 경우 레이아웃이 깨지거나, 또는 뷰 왼쪽 상단에 값이 표시가 안되었음. 최소여백 및 하단 레이아웃을 잡아줌으로써 뷰의 크기를 확정해주니 텍스트 표시가 원활했음.
  • json 가져올 때, 내부 배열 등으로 필요데이터를 가져오는 것에 있어 조건이 필요함을 알 수 있었음.

2개의 댓글

comment-user-thumbnail
2022년 8월 7일

오우오우오우 열공하고 계시네요 ~ 지속적으로 보고 있습니다 화이팅 ~

답글 달기
comment-user-thumbnail
2022년 8월 7일

오우오우오우 열공하고 계시네요 ~ 지속적으로 보고 있습니다 화이팅 ~

답글 달기