TIL-2024/05/04

박상우·2024년 9월 1일
0

📝 TIL

목록 보기
29/45
post-thumbnail

빅 엔디안(Big Endian) / 리틀 엔디안(Little Endian)

엔디안(Endianess)은 컴퓨터의 메모리 같은 1차원 공간에 대상을 배열하는 방법을 말한다.

빅 엔디안 - 상위 비트부터 바이트 단위로 저장하는 방식 ( 네트워크 )

리틀 엔디안 - 하위 비트부터 바이트 단위로 저장하는 방식 ( 인텔 계열 CPU )

ex) 네트워크 포트 128.2.194.242 표현법

128.2.194.2420x8002C2F2

종류표현
빅 엔디언80 02 C2 F2
리틀 엔디언F2 C2 02 80

HTTP

HyperText Transfer Protocol의 약자. 문서를 전송하기 위한 프로토콜.

서버-클라이언트 프로그래밍 모델에서 어떤 식으로 메세지를 교환할지 정해놓은 규칙이다.

주요 메소드 규칙

요청동작
GET리소스 조회
POST리소스 등록, 요청한 데이터에 대한 처리
PATCH리소스에 대해서 부분 변경을 수행.
PUT해당 데이터를 덮어쓴다. 데이터가 없으면 생성.
DELETE리소스 삭제

응답 코드

1xx ( 정보전달 : Information Response )

요청을 받았고, 작업을 진행 중이라는 의미.

  • 100 ( Continue ) : 임시 응답으로 클라이언트가 요청을 계속하거나 요청이 완료된 경우 응답을 무시해야함을 의미
  • 101 ( Switching Protocol ) : Upgrade클라이언트의 요청 헤더에 대한 응답으로 전송되며 서버가 전환하는 프로토콜을 의미 ex) HTTP 1.1 -> HTTP 2.0, HTTP -> HTTPS
  • 102 ( Processing ) : 서버가 요청을 수신하여 처리중.
  • 103 ( Early Hints ) : 최종 응답에 대한 해더를 먼저 받고, 완성된 응답은 나중에 받게 된다. 리소스의 링크를 먼저 전달하여 완성된 응답을 받기 전에 해당 리소스에 대한 로딩을 먼저 진행할 수 있다. 웹 최적화에 주로 사용

2xx ( 성공 : Successful Response )

작업이 성공적으로 끝났고,받아들여졌다는 의미.

  • 주요 코드
    • 200 ( OK ) : 성공적으로 처리했을 때. 가장 일반적으로 볼 수 있는 HTTP 형태. 성공의 의미는 Method에 따라 다르다.
    • 201 ( Created ) : 요청에 성공했으며 새로운 리소스가 생성됐음을 의미. POST나 PUT에 의한 응답 코드.
    • 204 ( No Content ) : 해당 요청에 대해서 보낼 리소스가 없지만 응답 헤더를 유용하게 사용할 수 있음

3xx ( 리다이렉션 : Redirection Message )

요청을 완료하기 위해 리다이렉션이 이루어져야함을 의미.

  • 300 ( Multiple Choices ) : 요청에 대한 응답이 2개 이상인 경우, 둘 중하나를 선택해야하는 상태를 의미.
  • 301 ( Moved Permanently ) : 요청한 리소스의 URL이 영구적으로 변경된 경우. 새 URL이 응답에 포함되어 전달됨.
  • 302 ( Found ) : 요청한 리소스의 URI가 일시적으로 변경되었음을 의미.
  • 303 ( See Other ) : GET 요청을 통해 다른 URI를 통해 리소스를 가져오도록 지시. GET메소드가 아닌 다른 메소드로 요청을 보냈더라도 GET 메소드를 무조건 써야함.
  • 304 ( Not Modified ) : 캐싱 목적으로 사용. 응답이 수정되지 않았음을 알려 클라이언트가 동일한 버전의 응답을 사용하고 있음을 보장.
  • 307 ( Temporary Redirect ) : 요청한 리소스가 임시로 다른 URI가 있음을 의미. 303과 달리 요청에 사용한 메소드를 그대로 사용해서 재요청을 보내야함.
  • 308 ( Permanent Redirect ) : 리소스가 다른 URI에 영구적으로 위치함을 의미. HTTP 메서드를 변경하지 않고 다른 URI에 보내야함을 의미.

4xx ( 클라이언트 오류 : Client Error Resposne )

요청이 올바르지 않은 경우. 브라우저에 직접 표출된다.

  • 400 ( Bad Request ) : 클라이언트 오류로 인식되는 사항으로 인해서 요청을 처리하지 않거나, 할 수 없는 경우
  • 401 ( Unauthorized ) : 인증을 위한 자격증명에 실패했거나, 자격 증명이 필요한 경우
  • 403 ( Forbidden ) : 클라이언트가 접근하려는 콘텐츠에 대한 권한이 없는 경우
  • 404 ( Not found ) : 서버가 요청한 리소스를 찾을 수 없는 경우. 브라우저에서는 URL이 인식되지 않음을 의미하고, API의 경우 유효한 엔드포인트지만 리소스 자체가 없는 경우를 의미한다. 403 에러코드를 사용하는 경우 권한이 없음을 숨기기 위해 404를 대신 사용하기도 한다.

5xx ( 서버 오류 : Serever Error Response )

서버가 응답할 수 없는 경우를 의미.

  • 500 ( Internal Server Error ) : 서버에서 처리방법을 알 수 없는 상황인 경우
  • 501 ( Not Implemented ) : 요청한 방법이 서버에서 지원되지 않아 처리할 수 없는 경우.

이 이외에도 비표준 응답으로서 서버에 따라 맞춤 코드가 전달될 수 있다.

Reference


FTP ( File Transfer Protocol )

TCP/IP 네트워크 상 컴퓨터들이 파일을 교환하기 위해 사용되는 통신 규약. 네트워크에 연결된 컴퓨터끼리 데이터를 원활하게 교환하기 위한 목적으로 개발되었음. 예) 대표적인 FTP 서비스 - FileZila

FTP는 클라이언트-서버 프로토콜로서, 기본적으로 클라이언트가 파일을 요청하면 서버가 파일을 제공한다. 그래서 프로토콜 연결에 있어 두개의 채널이 필요하다.

  • 명령 채널(Command Port): 명령을 시작해 어떤 파일에 엑세스할 것인지 기본 정보를 전달.
  • 데이터 채널(Data Port): 파일 데이터 전송.

FTP에서는 일반적인 기본 통신 모드로 21번포트를 활용한다. 그리고 FTP의 연결 모드에는 능동 모드, 표준 모드 두가지가 존재한다.

  • 능동 모드 : 데이터 요청을 클라이언트가 서버에게하는 방식
  • 수동 모드 : 데이터 요청을 서버가 클라이언트에게 접속 요청을 하는 방식
    ( 클라이언트의 방화벽에 영향을 받음 )

장/단점

  • 장점 - 동시에 여러 파일 전송이 가능, 연결이 끊긴 후 전송 재개 가능, 전송 일정 예약 가능
  • 단점 - 보안 프로토콜에 의해서 개발되지 않았기 때문에 보안에 취약
    → FTP의 대안으로 SFTP를 사용. (SSH 데이터 스크림을 통해 파일 전송시 높은 수준으 파일 보호를 실현하는 프로토콜)

Reference

https://cafe24.zendesk.com/hc/ko/articles/5729931658649-FTP는-어떻게-사용하나요

https://experience.dropbox.com/ko-kr/resources/what-is-ftp


MIME

  • MIME(Multipurpose Internet Mail Extentsions)은 다양한 유형의 정보를 식별하기 위한 표준.
  • MIME으로 인코딩한 파일은 Content-type 필드를 헤더에 담게 되고, 이를 통해 전송된 자원의 형식을 표현할 수 있다.
  • 초기 메일 컨텐츠에 주로 사용되었지만, HTTP에서 웹 서버가 전달하는 컨텐츠의 유형을 분류하는 기준으로서 사용된다.
    • 브라우저에서는 파일 확장자가 아닌 전달받는 MIME 유형을 통해서 처리방식을 결정하기 때문에 웹 서버에서 Content-type에 유형을 정확하게 보내는 것이 중요하다.

구조

/를 기준으로 type(파일의 종류)과 subtype(파일의 포맷)으로 나뉨

type/subtype

추가적인 세부정보 제공을 위해 매개변수가 사용될 수 있음.

type/subtype;parameter=value

유형

Discrete - 단일 파일이나 매체를 나타내는 유형

  • application
  • audio
  • example
  • font
  • image
  • model
  • text
  • video

Multipart - 여러 구성 요소 부분으로 구성된 문서를 나타내며 각 부분은 고유한 개별 MIME 유형을 가질 수 있음.

  • multipart
  • message

Reference

profile
나도 잘하고 싶다..!

0개의 댓글

관련 채용 정보