HTTP: 11개의 글
상황에 따른 HTTP status 코드 사용하기 Rest API 서버를 개발할 때 400 : Bad Request와 200 : OK 만 사용하는 경우가 있는데, 상황에 따라 조금 더 명확한 정보를 전달할 수 있는 HTTP 상태코드를 알아보자. 1xx(Information) : 요청이 수신되어 처리중이며, 계속해서 프로세스를 진행한다. 최근에는 1xx 상태코드를 거의 사용하지 않는다. 2xx(Successful) : 요청을 성공적으로 수신했으며, 정상적으로 처리되었다. 3xx(Redirection) : 요청을 완료하려면 추가적인 행동(리소스)이 필요하다. 4xx(Client Error) : 클라이언트 오류, 잘못된 문법/요청 등으로 서버가요청을 수행할 수 없다. 5xx(Server Error) : 서버가 ..
해당 코드는 Github 공개되어 있습니다. 테스트 코드를 작성할 할 때 외부 서비스와 통신하는 구간은 Mocking 해서 해서 테스트를 진행하게 됩니다. 대표적으로 HTTP 외부 통신이 있습니다. 이와 비슷한 내용으로 RestTemplate Mock 기반 테스트하기을 포스팅을 했었습니다. 그와 비슷한 주제로 Mockserver Netty 기반으로 Mock Test를 진행하는 방법에 대해서 다루어보겠습니다. Mockserver Netty 장점 직관적이고 쉽게 학습하기 좋은 점도 있지만, MockRestServiceServer에 비해서 가장 큰 장점으로 생각되는 것은 HTTP Client에 대한 제약이 생대적으로 없는 부분입니다. MockRestServiceServer 이름에서부터 설명되지만 ResTemp..
들어가며 JavaScript에서 웹 개발을 할때 Front의 코드를 구현할때 Ajax를 이용하면 쉽게 서버로부터 데이터를 받아오고, 전송을 할 수 있다. 아래 소스코드는 nodeJs와 같이 웹 서버 프레임워크가 설치가 되어있고, 서버가 실행이 되어 있어, 해당 요청 URL을 처리를 할 수 있는 상태가 필요하다. 전송하는 방법은 앞서 설명했던 HTTP Request를 사용하고, 보통은 HTTP GET을 통해 서버로부터 데이터를 받아오고, HTTP POST를 통해서 데이터를 전송하는 방법을 사용하지만. POST로도 데이터 전송이 가능하다는 점~ 서버에서 Web Front로 데이터 전송 서버로 부터 초기의 데이터를 Web Application으로 불러오는 소스코드입니다. ajax로 설정한 url을 요청을 하면..
들어가며 지난 포스팅에서는 HTTP에 대해서 설명한바 있습니다. [HTTP란? 특징 및 구성요소 - Request, Response, Structure, Method, Reponse Code ] NodeJs에서 가장 기본적으로 사용되는 웹 모듈로서 http를 사용합니다.. http모듈을 사용해서 웹 서버와 클라이언트를 쉽게 생성할 수 있습니다. 서버는 request의 요청 메시지로서 url, parameter 등을 수신하고, response인 응답메시지로서 사용자에게 적절한 페이지를 전송, 쿠키 저장 및 추출, 그리고 페이지 이동의 역할을 합니다. 이번 포스팅에서는 http모듈을 사용해 간단한 Web Server를 만들어보겠습니다. 소스코드 http 모듈을 import한 뒤에 http.createServ..
오늘 포스팅할 내용은 간단하게 HTTP와 HTTPS와의 차이점을 보고 더 나아가 HTTPS에 대해 다루어보려 한다. HTTP VS HTTPS 웹 개발을 하는 개발자라면 HTTP 프로토콜이라는 것을 모르지 않을 것이다. HTTP란 Hypertext Transfer Protocol의 약자이다. OSI 7계층 중 응용계층에 위치하고 있는 프로토콜이다. 이 프로토콜은 간단히 네트워크 구간에서 HTML문서를 전송하기 위한 통신규약이다. 물론 HTML 문서만을 주고 받는 것은 아니지만 간단히 쉽게 HTML을 주고 받기 위한 프로토콜이라고 생각하자. 그렇다면 HTTPS란 무엇일까? HTTPS는 Hypertext Transfer Protocol Over Secure Socket Layer의 약자로 Secure라는 단어..
오늘 다루어볼 포스팅 내용은 Wireshark를 이용한 네트워크 패킷 분석 예제입니다. HTTP/HTTPS 포스팅을 위한 선행 작업이라고 볼 수 있을 것 같습니다. 모든 환경은 Mac OS 환경에서 진행되었음을 알려드립니다. Wireshark · Download Riverbed is Wireshark's primary sponsor and provides our funding. They also make great products that fully integrate with Wireshark. I have a lot of traffic... ANSWER: SteelCentral™ Packet Analyzer PE • Visually rich, powerful LAN analyzer • Quickly a..
1. 특징 인터넷상에서 데이터를 주고 받기 위한 서버/클라이언트 모델을 따르는 전송 프로토콜 애플리케이션 레벨의 프로토콜로 TCP/IP위에서 작동 클라이언트에서 요청(request)를 보내면 서버는 요청을 처리해서 응답(response) 80번 port 이용 비상태연결(Stateless, Connectless) 서버에 연결하고 요청해서 응답을 받으면 연결을 끊어버린다. 장점: 접속유지 최소화, 불특정 다수를 대상으로 하는 서비스에 유리 단점: 연결을 끊어버리기 때문에, 클라이언트의 이전 상태를 알 수 없음, 따라서 로그인을 해도 정보유지 불가, 이를 해결하기 위해 쿠키 등등을 이용 Keep Alive HTTP 1.1 부터는 keep-alive 기능을 지원 HTTP는 하나의 연결에 하나의 요청을 하는 것을..
참조문서 : https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/client/RestTemplate.html 1. RestTemplate이란? spring 3.0 부터 지원한다. 스프링에서 제공하는 http 통신에 유용하게 쓸 수 있는 템플릿이며, HTTP 서버와의 통신을 단순화하고 RESTful 원칙을 지킨다. jdbcTemplate 처럼 RestTemplate 도 기계적이고 반복적인 코드들을 깔끔하게 정리해준다. 요청보내고 요청받는데 몇줄 안될 정도.. 특징 기계적이고 반복적인 코드를 최대한 줄여줌 RESTful형식에 맞춤 json, xml 를 쉽게 응답받음 2. HTTP 서버와의 다양한 통신방..
1. 문제상황 HTTP 메소드 DELETE로 request body를 이용하여 spring 컨트롤러에 요청을 쐈는데, 파라미터가 전부 null 로 넘어가는 것이 아닌가?? 띠용? 2. 문제점 참조문서 : https://stackoverflow.com/questions/25375046/passing-data-in-the-body-of-a-delete-request tomcat의 문제라고 한다. tomcat은 request body를 POST 일때만 파싱하고 있었다. 코드까보기 톰캣버전 : 8.0.48 (로컬 윈도우에 깔린거) 경로 : org.apache.catalina.connector.Connector.java 관련 코드 76라인 : 생성자호출에서 this.parseBodyMethods = "POST";..
참조문서 : https://nodejs.org/dist/latest-v6.x/docs/api/http.html require('http'); 를 써야한다. nodejs는 자체적으로 http 서버를 갖고 있기 때문에, 아파치나 nginx 같은거 안써도 된다. 1. 개요 HTTP 서버 http.Server : HTTP 서버 http.IncomingMessage : HTTP 서버의 요청 메세지, Readable Stream 이다. http.ServerResponse : HTTP 서버의 응답 클래스 HTTP 클라이언트 http.Client : HTTP 클라이언트 http.ClientRequest : HTTP 클라이언트 요청 메세지 http.IncomingMessage : HTTP 서버의 응답 메세지, Reada..