웹 프로그래밍 기초 #1

yenn·2021년 1월 21일
0

Web Study

목록 보기
1/1
post-thumbnail

웹 프로그래밍을 위한 언어

웹 관련 인기 언어

  • Python : 프로그래밍 입문자가 읽기 쉽고 적은 코드를 사용하여 프로그램을 개발할 수 있습니다. 많은 사람에게 추천되는 언어이며, 데이터 과학에서도 자주 사용되며 웹사이트 개발에서도 많이 사용됨.
  • PHP : 웹의 80% 이상이 PHP로 만들어졌다고 말합니다. 그만큼 PHP는 웹 개발에서 많이 사용됨.
  • JavaScript : 자바 스크립트는 처음 시작이 브라우저에서 동작하는 언어였습니다. 현재는 서버에서도 작성하는 프로그램으로 점차 영역을 넓혀가고 있음. 프론트 개발자라면 반드시 알아야 할 언어이다. 자바스크립트 커뮤니티도 점점 더 거대해지고 있음.
  • JAVA : 엔터프라이즈 소프트웨어 환경에 잘 맞는 언어이다. 큰 규모의 소프트웨어 개발에 자바언어가 많이 사용되고 있음. JAVA언어를 지원하는 수많은 커뮤니티에 위해서, 지속적으로 발전되어 훌륭한 구조와 설계 기법들이 잘 갖춰져 있음.
  • Ruby : 빠른 개발에 널리 사용되며, 단순함과 세련된 웹 어플리케이션을 만들 수 있기 때문에 인기 있는 언어 중의 하나

웹의 동작(HTTP 프로토콜 이해)

인터넷(네트워크 통신)의 이해

  • 인터넷 ! = WWW

    : TCP/IP 기반의 네트워크가 전세계적으로 확대되어 하나로 연결된 네트워크들의 네트워크

* 인터넷 : 80번 포트
* 이메일 : 25/110/114번 포트
* FTP : 21번 포트

HTTP 란 ?

  • 서버와 클라이언트가 인터넷 상에서 데이터를 주고 받기 위한 프로토콜(protocol)
  • 최초의 HTTP 버전은 HTTP v0.9
  • 현재 HTTP/2 까지 버전이 등장

HTTP 작동 방식

  • 서버 / 클라이언트 모델을 따름
    : 클라이언트가 먼저 서버에 요청을 보내고 서버가 클라이언트에게 응답을 보내는 형식
  • HTTP는 무상태 프로토콜(protocol)
    : 서버와 클라이언트는 요청&응답 처리 전에 연결하는 과정이 존재, 서버의 응답 후 바로 클라이언트와 연결을 끊음
  • 장점

    • 불특정 다수를 대상으로 하는 서비스에 적합
    • 클라이언트와 서버가 계속 연결된 형태가 아니기 때문에 클라이언트와 서버간의 최대 연결수보다 훨씬 많은 요청과 응답을 처리
  • 단점

    • 연결을 끊어버리기 때문에 클라이언트는 이전 상황을 알 수 없음
      → 정보를 유지하기 위해서 cookie와 같은 기술이 등장

URL, Uniform Resource Locator

: 인터넷 상의 자원의 위치, 특정 웹 서버의 특정 파일에 접근하기 위한 경로 혹은 주소
* http 서버의 기본 포트값은 80번

접근 프로토콜 : // IP주소 또는 도메인 이름/문서의 경로 / 문서 이름

HTTP 통신

HTTP 요청 메시지

  • 요청 헤더 : 요청 메서드 / 요청 URI / HTTP 프로토콜 버전
  • 요청 바디
    • GET 의 경우 URI에 요청 자원을 같이 보내기 때문에 요청 바디가 없음
    • POST, PUT을 사용할 경우 바디가 있음

HTTP 응답 메시지

  • 응답 헤더 : HTTP 프로토콜 버저/ 응답코드 / 응답 메세지
    • 날짜, 웹서버 이름과 버전, 콘텐츠 타입, 캐시 제어 방식, 콘텐츠 길이 값
  • 응답 바디
    : 실제 응답 리소스를 가짐

요청 메서드

  • GET : 정보를 요청하기 위해서 사용(SELECT)
  • POST : 정보를 밀어넣기 위해서 사용(INSERT)
  • PUT : 정보를 업데이트하기 위해서 사용(UPDATE)
  • DELETE : 정보를 삭제하기 위해서 사용(DELETE)
  • HEAD : (HTTP)헤더 정보만 요청하여 해당 자원이 존재하는지 혹은 서버에 문제가 없는지를 확인하기 위해서 사용
  • OPTIONS : 웹서버가 지원하는 메서드의 종류를 요청
  • TRACE : 클라이언트의 요청을 그대로 반환, echo 서비스로 서버 상태를 확인하기 위한 목적으로 주로 사용

HTTP vs. HTTPS

HTTP

  • 소켓 통신에서 일반 텍스트를 사용

HTTPS

  • 보안성을 높임
  • SSL이나 TLS 프로토콜을 통해 세션 데이터를 암호화
profile
Junior BackendEngineer 😎

0개의 댓글