웹 프로그래밍을 위한 언어
웹 관련 인기 언어
- 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와 같은 기술이 등장
: 인터넷 상의 자원의 위치, 특정 웹 서버의 특정 파일에 접근하기 위한 경로 혹은 주소
* 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 프로토콜을 통해 세션 데이터를 암호화