。゚(*´□`)゚。

코딩의 즐거움과 도전, 그리고 일상의 소소한 순간들이 어우러진 블로그

[네이버클라우드] 클라우드 기반의 개발자 과정 7기/웹프로그래밍

[NC7기-74일차(8월8일)] - 웹프로그래밍 55일차

quarrrter 2023. 8. 8. 15:21

general servlet : Servlet(interface) & ServletConfig & java.io.Serializable 을 상속 받은 클래스임 

general servlet- service만 오버라이딩하면되고 ,init도 하고 싶으면 제너럴에서 오버로딩한 init를 오버라이딩하면됨

 

http servlet을 사용하면 오버로딩한 service, init를 (httprequest 를 파라미터로 받음) 쓰면 형변환 안 해도 됨 

형변환 하는 코드가 속에 들어있음 ,,1!

 

맨 아랫줄 service앞에는 this.가 생략되어있고 호출한 클래스 주소가 들어감.

그 안에 service가 없으면 super로 올라감. 


* HttpServlet 과 Http Method

일반 클래스: concreate class라고 부름 

빨 프라이빗 노랑색 protect , 초록 public

상속: service 과정 ,, , 

서블릿 컨테이너가 서비스를 호출하는데 sevlet04에 서비스 없음, 올라가서 httpservlet에 service호출됨. 

그 안에서 httpservlet 형변환하는 service를 호출함. service안으로 들어가면 this.이니까 servlet04에 서비스 있는 지 확인하고 없으면 다시 httpservlet으로 올라가서 httpservlet의 서비스가 호출됨. 

 

어떤 메소드가 호출될땐 앞에 객체주소가 주어짐. 객체주소안에서 실행됨. 아무것도 안 써있으면 this. 임 

ㅇㅇ

 

 

GETPOST 확인 해보기 ? - 백엔드에서는 많이 사용함  

 

https://web.postman.co/

super에서 put은 오류 메세지를 띄우는 메서드임. ex01/s4에 put이 없기때문에 super의 put 오류메세지

http 서블릿 extends 하면  doget dopost 오버라이딩해야댐 

 

*HTTP 프로토콜 - GET 요청과 응답

https://www.charlesproxy.com/latest-release/download.do
찰스를 띄우면 운영체제 설정이 바뀜 . 인터넷 옵션 아래와 같이
찰스끄면 9999  없어짐. // 찰스 키면 9999로 프록시서버가 끼는 거임 . 9999포트에서 서버로 보냄
raw - 보낸 데이터(프로토콜) 날 것

http 프로토콜 메서드 : 생성 post /  조회 get / 변경 put / 삭제 delete / 정보 head / option trace connect 

요청헤더-Referer : 유입경로 추적 (사파리 등 웹브라우저에선 개인정보 보호를 위해 차단하고 있음, 그래서 의미없음

엔티티헤더: 보내고 받는 데이터

응답프로토콜의 status line의 코드로 상태 구분 / 200(ok) 201(생성) 301 400 401(권한없음), 404(작업 없음)

https://www.w3.org/Protocols/rfc2616/rfc2616.html
https://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6

찰스키면 찰스에 다 요청하게 됨. 그리고 찰스가 서버에 보냄 

*GET 요청과 POST요청에서 데이터를 보내는 방법

1. Get요청 -uri에 담아서

2. Post 요청 - body에 담아서

post
head

 

URL Encoding(Percent Encoding)

=> URL에 문자를 표현하는 인코딩 방법

=> 알파벳, 숫자, 일부 문자를 제외한 나머지 문자를 16bit 코드로 변환하여 표현한다. 

=> RFC 3986 명세에 따라 인코딩한다.

=> 일부 네트워크 장비는 7bit까지만 처리하는 경우가 있었다.

        ☞ 8bit 이상을 처리하기 위해 7bit화 시키는 방법 (비슷한 인코딩 예: Base64)

=> 웹서버와 웹브라우저가 하는 일 

*규칙

① 비예약 문자 -> 그대로 유지 

비예약어

② 예약어 -> URL 인코딩

 

예약어 (+공백)

? : 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