2020-10-05 TIL

2 minute read

HTTP

  • HTTP는 Hypertext Transfer Protocol의 약자로, 전 세계의 웹브라우저, 서버, 웹 애플리케이션이 모두 사용하는 인터넷 공용어
  • 신뢰성 있는 데이터 전송 프로토콜 사용; 인터넷의 결함 및 약점에 대한 걱정 없이 기능 구현 가능

  • HTTP 요청 프로토콜 ——————————— GET [자원주소] HTTP/1.1 (CRLF) Host: [서버주소] (CRLF) (CRLF) ———————————

  • 프로토콜(protocol)? => 클라이언트/서버 간의 통신 규칙. => 데이터를 주고 받는 규칙.

  • HTTP 응답 프로토콜 ——————————– HTTP/1.1 200 OK(CRLF) Content-Type: text/html; charset=UTF-8(CRLF) (CRLF) 보낼 데이터 ——————————–

상태 코드

  • 클라이언트의 요청의 성공 여부 등을 알려주는 세 자리 숫자
  • 모든 HTTP 응답 메시지는 상태 코드와 함께 반환
  • 1xx : 정보 제공
  • 2xx : 성공
  • 3xx : 리다이렉션
  • 4xx : 클라이언트 요청 오류
  • 5xx : 서버에서 오류가 발생함

  • 200 OK
  • 301 Moved Permanently
  • 400 Bad Request
  • 403 Forbidden
  • 404 Not Found

MIME

  • HTTP는 수천 개의 데이터 타입을 다루기 때문에 ‘MIME (Multipurpose Internet Mail Extensions, 다목적 인터넷 메일 확장)‘라는 데이터 포맷 라벨을 웹에서 전송되는 객체 각각에 붙임 쉽게 말하면, 이 웹 콘텐츠가 어떤 데이터 타입인지 알려주는 라벨
  • 표현 형식: ‘주 타입/부 타입’
    • HTML 데이터 타입 = ‘text/html’
    • JPEG 이미지 데이터 타입 = ‘image/jpeg’
    • GIF 이미지 데이터 타입 = ‘image/gif’

포트번호

  • Port 번호는 16bit : 총 65536개의 port number가 존재
  • 0 ~ 1023 번 - Well Known Port (IANA에서 할당한 TCP, UDP 포트) : 유명한 서버, 특정 서버들.
  • 1024 ~ 49151 번 - Registered Port (기관이나 사업자들을 위해 IANA에서 관리하는 포트)
  • 49152 ~ 65535 번 - Dynamic Port (일반 사용자들이 자유롭게 사용할 수있는 포트)
  • Port 번호는 일반적으로 IP address 뒤에 콜론(:)을 이용하여 표기
    • ex) 182.143.421.211:443 (포트번호 443)
  • 잘 알려진 포트 20 - FTP(data) 21 - FTP(제어) 22 - SSH 23 - Telnet 25 - SMTP 53 - DNS <TCP, UDP> 80 - HTTP <TCP, UDP> 110 - POP3 443 - HTTPS

인코딩 문제

  • 인코딩을 스캐너로 인풋할 때 미리 지정하면 한글 깨짐 현상을 해결할 수 있다.

URI > URL, URN

  • https://mygumi.tistory.com/139

웹크롤링

  • https://lyb1495.tistory.com/17

base64

  • https://effectivesquid.tistory.com/entry/Base64-%EC%9D%B8%EC%BD%94%EB%94%A9%EC%9D%B4%EB%9E%80
  • html은 텍스트 파일이기 때문에 jpg 파일을 직접 삽입할 수 없다.
    • 그러므로 jpg 파일(바이너리 파일)을 텍스트 파일로 변환시켜서 삽입해야 한다.
    • 이 때 사용되는 규칙이 Base64 이다.
  • Base64 인코딩 => 바이너리 데이터를 문자화시킨다. => 바이너리 값을 6비트식 잘라서(2의 6승) 64진수으로 만든 후 Base64 표에 정의된 대로 해당 값을 문자로 변환한다. => 보통 바이너리 데이터를 텍스트로 전송하고 싶을 때 많이 사용한다. => “ABC012가간” 문자열 414243303132EAB080EAB081(UTF-8 코드) 4142 ==> 0100000101000010… (2진수) 010000 010100 0010… (6비트씩 자른 것) 6비트로 자른 것을 다시 10진수로 표현하면 ==> 16 20 … 16을 Base64 코드표에 따라 문자로 바꾸면 ==> Q 20을 Base64 코드표에 따라 문자로 바꾸면 ==> U … 이런 식으로 문자열을 Base64로 바꾸면 결과는 다음과 같다. QUJDMDEy6rCA6rCB6rCE

Categories:

Updated: