Today I Learned …
[수업] 1주차 정리 본문
* 해당 주차의 수업 내용을 정리합니다.
1. 클라이언트와 서버의 관계
[1] 클라이언트는 요청하고, 서버는 응답한다.
2. HTTP
[1] HyperText Transfer Protocol
[2] 클라이언트와 서버가 서로 정보를 주고받을 때 지켜야하는 일종의 규약이다.
3. 정적페이지 vs 동적페이지
[1] 정적페이지 : 변하지 않는다.
⇒ A, B, C의 성적표를 다 각각 만들어줘야 함. 사용자가 100명이면 맞춤화 페이지 100개..
[2] 동적페이지 : 변한다.
⇒ 페이지 한 장에 사용자의 이름만 다르게 박아서 보여줄 수 있다. 하나의 페이지로 수많은 사용자 맞춤화 가능.
4. 웹서버 3 Tier
[1] 웹서버 : 정적페이지를 전달 (.html 보여줌)
[2] WAS : 동적페이지 처리 (.php를 .html로 처리해서 웹서버에게 넘겨줌)
[3] DB : 데이터베이스 (SQL)
5. 클라이언트 사이드 스크립트 vs 서버 사이드 스크립트
[1] 클라이언트 사이드 스크립트 (프론트엔드) : 클라이언트에서 사용 (Html, JavaScript...)
[2] 서버 사이드 스크립트 (백엔드) : 서버단에서 사용 (PHP, SQL...)
6. 서버
[1] 서비스를 하고 있는 컴퓨터를 뜻하며, 의외로 그냥 우리 컴퓨터다.
7. URL 구조
http://localhost/study/login.php?name=choco
[1] http : Protocol
[2] localhost : Host 주소 (IP)
[2] /study/login.php : 파일의 경로
[3] ?name=choco : 파라미터
8. GET vs POST
[1] GET : 서버로부터 정보를 조회하기 위해 설계된 메소드
⇒ 필요한 데이터를 Body에 담지 않고, 쿼리스트링을 통해 전송한다.
⇒ 데이터가 URL 상에 노출된다.
[2] POST : 리소스를 생성/변경하기 위해 설계된 메소드
⇒ 데이터를 Body에 담아서 전송한다.
⇒ 내용이 눈에 보이지 않아 GET 보다 보안성이 높다.
⇒ 그러나, 크롬 개발자 도구와 같은 툴로 요청 내용을 확인할 수 있기 때문에 민감한 데이터는 반드시 암호화하여 전송하여야한다.
9. Web Proxy
[1] 대리인, 중간자
[2] 클라이언트와 서버가 통신을 주고 받는 루트 사이에 위치함
[3] 접근할 수 없는 네트워크에 접근하기 위해 사용하기도 함
10. Burp Suite
[1] 웹 프록시 툴
[2] 클라이언트와 서버가 네트워크 상에서 정보를 주고 받을 때 중간에서 패킷*을 가로챌 수 있다.
[3] 가로챈 패킷은 변조가 가능하다.
* 패킷 = 헤더 (메타 데이터) + 페이로드 (실제 데이터) + 트레일러
11. 로그인 인증
[1] 쿠키 : HTTP 요청에 포스트잇 하나 붙이는 것
⇒ 쿠키 변조의 위험성이 큼! (클라이언트 측에서 생성하는 것이기 때문에 변조가 매우 쉽다.)
[2] 세션 : 서버 측에서 발급하는 일종의 ID
⇒ 서버 측에서 발급하기 때문에 비교적 안전하며, 보안을 위해 유추가 불가능하도록 아주 복잡하게 만든다.
⇒ 클라이언트는 인증 절차를 통해 발급받은 세션을 쿠키에 적어 서버와 통신한다.
1주차 과제
1. 블로그 개설 : 단톡방에 주소 올리기
2. 리눅스에 APM 세팅
3. 로그인 페이지 개발 : 로그인/로그아웃 + 메인페이지
4. 2주차 내용 예습
'Study > 수업' 카테고리의 다른 글
[수업] 5주차 정리 (0) | 2021.11.18 |
---|---|
[수업] 4주차 정리 (0) | 2021.11.04 |
[수업] 3주차 정리 (0) | 2021.10.29 |
[수업] 2주차 정리 (1) | 2021.10.22 |
[수업] OT 정리 (0) | 2021.10.16 |