HTTP 요청과 응답

아기코딩단2·2022년 3월 23일
0

GET /index.html HTTP/1.1(GET은 단순 자원요청 method)
Host: 192.168.0.8:8080
Cache-Control: max-age=0 (HTTP요청 프로토콜 헤더)
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36 Edg/99.0.1150.46
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: ko,en;q=0.9,en-US;q=0.8 (사용자 os 언어)
Connection: keep-alive
=> 웹 서버가 웹 브라우저로 요청 보내는 것
요청할 때 헤더에 정보가 들어있음
region_name/ region_id

city_id

링크를 눌렀을 때 GET 요청임 주로 조회할 때 사용
데이터 전송은 POST 요청임 데이터 전송(등록, 변경)

입력값을 집어넣고 요청하는 거임

GET 요청은 Request URI 쪽에 붙여서 보내는 거임
GET 요청에서 Data 보내는 방법
GET요청의 특징은 URL에 데이터가 보관됨 -> 웹 브라우저의 캐시 메모리에 보관됨 ->쉽게 외부에 노출 -> 보안에 매우 취약

  • binary 데이터 전송 불가(파일 업로드 불가)
    -URL 크기의 제약(보통 8KB정도로 제약된다.) => 대량의 컨텐트 전송불가

장점 : URL과 데이터를 묶어서 전달하기 쉽다. 해당페이지로 바로 보낼 수 있다. 조회 페이지의 URL를 지정할 때 주로 사용한다.
그렇다면 GET요청은 언제 사용하는가?

POST 방식으로 파일 업로드 가능
POST 방식의 특징 :
message-body 부분에 보낼 데이터를 둔다 -> 주소창에 데이터가 노출되지 않는다 -> 웹브라우저 캐시에 보관이 안된다 -> 보안에 덜 취약하다 -> 보내는 데이터의 크기에 제약이 없다.
-> "multipart/form-data" MIME 타입으로 인코딩을 하면 binary 데이터도 전송(파일 업로드)할 수 있다.

GET은 데이터를 request-line에 request-uri에 queryString형태로 데이터를 보낸다. 그래서 text 가 아닌 데이터를 보낼 수가 없다. 데이터가 함께 cache되기 때문에 로그인과 같은 방법은 GET방식을 사용하면 안된다. 대용량의 데이터를 보낼 수 없다.
POST 방식은 데이터를 messege-body 부분에 붙여서 보낸다.multipart/form-data" MIME 타입으로 인코딩을 하면 binary 데이터도 전송(파일 업로드)할 수 있다. 웹브라우저 캐시에 보관이 안된다 보안에 덜 취약하다

ServletContext
html 태그중에 mutiple 이 있음 사진:

<input type="file" name="photo" multiple><br> 여러개 업로드 가능

아래와 같이 설정하면 이미지의 크기 증가가능
spring.servlet.multipart.max-file-size= / 설정하지않으면 1MB

spring.servlet.multipart.max-request-size / 설정하지 않으면 10MB
이렇게 설정하면 업로드하는 모든 파일의 (이름 등) 크기 설정가능

profile
레거시 학살자

0개의 댓글