<a href="#" data-year="<%=beforeYear %>"
data-month="<%=beforeMonth %>" class="controlA">이전달</a>
<a href="#" data-year="<%=nextYear %>"
data-month="<%=nextMonth %>" class="controlA">다음달</a>
let year = $(this).data("year"); //a태그안에 data-year
let month = $(this).data("month");//a태그안에 data-month
jQuery data function
<span data-age="13">
$('span').data('age',13); //값 저장
$('span').data('age'); //값 가져옴 >> 13리턴
<script type="text/javascript">
let calenderForm = $("#calenderForm");
calenderForm.find(':input[name]').on("change",function(){//콜백함수
calenderForm.submit(); //change -> 로케일,timezone을 선택하자마자 submit
});//:input '모든 입력'태그중에 name값들을 갖고있는 녀석들
$(".controlA").on("click", function(event){
event.preventDefault();//안막으면 a태그 고유의 이벤트 -> 클릭하면 href 페이지 이동
//클릭한 a태그 선택 (스코프 제한할때 - 훨씬더 명확 let)
let year = $(this).data("year"); //a태그안에 data-year
let month = $(this).data("month");//a태그안에 data-month
//form태그 ID, 자식들중에 name='year'로 되있는 애들
calenderForm.find("[name='year']").val(year);
calenderForm.find("[name='month']").val(month);
//폼전송
calenderForm.submit();//폼submit(최종적으로) (다음달,이전달,language,timezone)
return false;
//하나의 페이지안에서 요청을 넘기는 방식이 여러가지인데 - 한가지 방식으로 요청이 넘어가게 해라!
});
</script>
<input name="year">, <select name="month">
인 값이 같이 변해서 값을 이것들만 넘겨줌a태그 == form태그 일치
한페이지에서 요청 넘어가는 구조 단일화
Message 요소 | 포함 데이터 |
---|---|
Response Line | Protocol-version, Status-code Reason-Pharse |
Response Header (metadata header) | 응답 메시지에 대한 부가정보(설정 정보) 헤더명=헤더값으로 표현된 토큰들로 구성됨 |
Response Body (Message Body) (content body) | Accept 요청 헤더에 지정된 MIME 데이터로 구성된 message body request한테 주는 답장! |
상태코드 | 의미 |
---|---|
100~ | HTTP/1.1에서 유효한 코드로 요청에 대한 조건부 응답처리 상태 |
200 | 요청에 대한 처리 성공, 정상 응답 데이터 상태 |
300~ | 클라이언트의 요청을 처리하기 위한 추가 동작이 필요함 (ex) 304(Not Modified) ★302/307(Moved) : Location 헤더와 병행 사용★ |
400~ | 클라이언트 에러(오류)로 실패, 클라이언트에게 오류전달해서 인지하게 함, 세분화해서 사용 (ex) 401(UnAuthorized),403(Forbidden) =>보안처리관련401,403 405(Method Not Allowed), 415(Media Not Supported) 400(잘못된 요청), 404(요청한 자원이 서버에 존재하지 않는다) |
500 | 서버 에러(오류)로 실패 서버에서 발생한 상황을 노출하지 않기 위해서 세분화해서 사용하지 않는다. 500으로 통일 |
메소드 | 리턴타입 | 설명 |
---|---|---|
setHeader(String name, String value) | void | name헤더의 값을 value로 지정 |
setIntHeader(String name, int value) | void | name헤더의 값을 정수 value로 지정 |
setDataHeader(String name, long date) | void | name의 헤더 값을 ms 단위의 value로 지정 |
addHeader(String name, String value) | void | name헤더의 값을 value로 추가 |
addIntHeader(String name, int value) | void | name헤더의 값을 정수 value로 추가 |
addDateHeader(String name, long date) | void | name헤더의 값을 ms단위의 value로 추가 |
containsHeader(String name) | boolean | 응답 헤더의 name 헤더 포함 여부 |