general servlet : Servlet(interface) & ServletConfig & java.io.Serializable 을 상속 받은 클래스임
general servlet- service만 오버라이딩하면되고 ,init도 하고 싶으면 제너럴에서 오버로딩한 init를 오버라이딩하면됨
http servlet을 사용하면 오버로딩한 service, init를 (httprequest 를 파라미터로 받음) 쓰면 형변환 안 해도 됨
맨 아랫줄 service앞에는 this.가 생략되어있고 호출한 클래스 주소가 들어감.
그 안에 service가 없으면 super로 올라감.
* HttpServlet 과 Http Method
일반 클래스: concreate class라고 부름
상속: service 과정 ,, ,
서블릿 컨테이너가 서비스를 호출하는데 sevlet04에 서비스 없음, 올라가서 httpservlet에 service호출됨.
그 안에서 httpservlet 형변환하는 service를 호출함. service안으로 들어가면 this.이니까 servlet04에 서비스 있는 지 확인하고 없으면 다시 httpservlet으로 올라가서 httpservlet의 서비스가 호출됨.
어떤 메소드가 호출될땐 앞에 객체주소가 주어짐. 객체주소안에서 실행됨. 아무것도 안 써있으면 this. 임
GETPOST 확인 해보기 ? - 백엔드에서는 많이 사용함
http 서블릿 extends 하면 doget dopost 오버라이딩해야댐
*HTTP 프로토콜 - GET 요청과 응답
http 프로토콜 메서드 : 생성 post / 조회 get / 변경 put / 삭제 delete / 정보 head / option trace connect
요청헤더-Referer : 유입경로 추적 (사파리 등 웹브라우저에선 개인정보 보호를 위해 차단하고 있음, 그래서 의미없음
엔티티헤더: 보내고 받는 데이터
응답프로토콜의 status line의 코드로 상태 구분 / 200(ok) 201(생성) 301 400 401(권한없음), 404(작업 없음)
찰스키면 찰스에 다 요청하게 됨. 그리고 찰스가 서버에 보냄
*GET 요청과 POST요청에서 데이터를 보내는 방법
1. Get요청 -uri에 담아서
2. Post 요청 - body에 담아서
URL Encoding(Percent Encoding)
=> URL에 문자를 표현하는 인코딩 방법
=> 알파벳, 숫자, 일부 문자를 제외한 나머지 문자를 16bit 코드로 변환하여 표현한다.
=> RFC 3986 명세에 따라 인코딩한다.
=> 일부 네트워크 장비는 7bit까지만 처리하는 경우가 있었다.
☞ 8bit 이상을 처리하기 위해 7bit화 시키는 방법 (비슷한 인코딩 예: Base64)
=> 웹서버와 웹브라우저가 하는 일
*규칙
① 비예약 문자 -> 그대로 유지
② 예약어 -> URL 인코딩
? : URL과 쿼리 구분(파라미터?)
= 키 밸류 연결(?)
③ 기타문자(8bit 이상의 코드로 표현하는 문자)
가(0xEAB080) -> "%EA%BO%80" 9바이트 (문자열로 바꿔버림)
결론:
8bit 코드값을 7bit코드 값으로 변환
문자를 "영문+숫자+특수문자"로 변환
'ASCII 의 일부 코드'
=>모든 문자는 7bit로 변환된다.
오래된 네트워크 장비를 통과할 수 있다.
목표: url과 혼동되지 않도록 하는 용도도 있지만, 오래된 네트워크 장비를 통과할 수 있도록 하는 목적이 있음 (옛날부터 이래가지고 어쩔수없음)
//ASCII코드는 7비트임
POST 메세지 바디에 보내면 머 문제 업는데 URL에 담아 보내는 GET은 문제가 있음 그래서 URL 인코딩하는것임. 걍 규칙임 ;
URL 인코딩을 나타내기 위해 앞에 %를 붙이는것임
서블릿 변경하면 리스타트 안 해도 되지만 파일 추가하면 리스타트해야댐
get 요청이 머냐면
검색창에 검색하면 보내는거
post 요청을 하고 싶으면 html에 메서드 post 추가하기
MIME ( Multi purpose Interneet Mail Extension )
text/plain
'[네이버클라우드] 클라우드 기반의 개발자 과정 7기 > 웹프로그래밍' 카테고리의 다른 글
[NC7기-76일차(8월10일)] - 웹프로그래밍 57일차 (0) | 2023.08.10 |
---|---|
[NC7기-75일차(8월9일)] - 웹프로그래밍 56일차 (0) | 2023.08.09 |
[NC7기-73일차(8월7일)] - 웹프로그래밍 54일차 (0) | 2023.08.07 |
[NC7기-72일차(8월4일)] - 웹프로그래밍 53일차 (0) | 2023.08.04 |
[NC7기-71일차(8월3일)] - 웹프로그래밍 52일차 (0) | 2023.08.03 |