묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨모든 개발자를 위한 HTTP 웹 기본 지식
HTTP와 포트
안녕하세요. 이 분야에 대해 개념이 잘 안잡혀 질문이 다소 황당하더라도 이해 부탁드립니다. 제가 만약 웹으로 유튜브랑 네이버를 동시에 사용중이면 둘 다 웹이므로 HTTPS 이고, 그러면 둘 다 제 컴퓨터의 443번 포트 하나에 연결되는 건가요? 저는 뭔가 유튜브랑 네이버에서 받고자 하는 데이터가 다르니까 구분되기 위해 서로 다른 포트를 부여해야 할 것 같아서요.
-
미해결작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지
간단한 로그인 api 적용
안녕하세요 좋은 강의 만들어주셔서 감사합니다 django 강의를 마친 후 이를 바탕으로 로그인, 회원가입, 프로필 확인, 삭제 정도 가능한 프로젝트를 새로 만들었습니다. 이를 바탕으로 강의의 profile 모델을 기반으로 한 간단한 api를 만들었고 지금 목적은 이 api를 기준으로 새로만든 django 프로젝트의 MODEL부분을 모두 api에서 관리하도록 적용하고싶은 학생입니다. 제가 만든 api의 명세서 입니다. https://documenter.getpostman.com/view/15940594/Tzm6kvP2 #accountapp/create.html {% extends 'base.html' %}{% load bootstrap4 %}{% block content %} <div style="text-align: center; max-width: 500px; margin: 4rem auto;"> <div class="mb-4"> <h4>Signup</h4> </div> <form action="{% url 'accountapp:create' %}" method="post"> {% csrf_token %} {% bootstrap_form form %} <input type="submit" class = "btn btn-dark rounded-pill col-6 mt-3"> </form> </div>{% endblock %} 에서 <form action="{% url 'accountapp:create' %}" method="post"> 이 부분의 url을 바꾸면서 class AccountCreateView(CreateView): model = User form_class = UserCreationForm success_url = reverse_lazy('profileapp:create') # reverse_lazy는 클래스형 뷰에서 reverse 는 함수형 뷰에서 template_name = 'accountapp/create.html' 이 부분을 함수형 뷰로 바꿔서 진행하려는데 위에 만든 api의 json 형식을 어떤식으로 읽고 쓰게 할 수 있는지에 대한 방법론이 궁금합니다... 참고로 rest api 서버의 스토리지는 mariadb이고 추후에는 현 django 프로젝트의 모델을 전부 삭제하고 api로만 진행할 생각입니다. 소셜 로그인과 비슷한 형태로 진행하려고 했는데 참 힘들더라구요.. 공부가 부족한 것 같습니다 ------------------------------------------ 현재 방법을 찾던 중 https://www.daleseo.com/python-json/ 위 포스트를 보고 파이썬 내장 모듈인 json 모듈을 통해 입력받는 것을 공부중에 있습니다 혹시 다른 방법이 있는지 이 방법을 사용할 경우 문제점이 무엇인지 알려주시면 감사하겠습니다 ---------------------------------------------------------------------------- #accountapp/views.pyimport json, requests# Create your views here.def web_request(method_name, url, dict_data, is_urlencoded=True): """Web GET or POST request를 호출 후 그 결과를 dict형으로 반환 """ method_name = method_name.upper() # 메소드이름을 대문자로 바꾼다 if method_name not in ('GET', 'POST'): raise Exception('method_name is GET or POST plz...') if method_name == 'GET': # GET방식인 경우 response = requests.get(url=url, params=dict_data) elif method_name == 'POST': # POST방식인 경우 if is_urlencoded is True: response = requests.post(url=url, data=dict_data, headers={'Content-Type': 'application/x-www-form-urlencoded'}) else: response = requests.post(url=url, data=json.dumps(dict_data), headers={'Content-Type': 'application/json'}) dict_meta = {'status_code': response.status_code, 'ok': response.ok, 'encoding': response.encoding, 'Content-Type': response.headers['Content-Type']} if 'json' in str(response.headers['Content-Type']): # JSON 형태인 경우 return {**dict_meta, **response.json()} else: # 문자열 형태인 경우 return {**dict_meta, **{'text': response.text}} python에서 http메소드의 post와 get을 사용할 수 있는 함수를 views.py 에 추가해주고 def signup(request): if request.method == 'POST': print('리퀘스트 로그' + str(request.body)) username = request.POST.get('userid', '') password = request.POST.get('userpw', '') pw2 = request.POST.get('userpw2', '') print(username, password, pw2) if password == pw2: json_signup = {} json_signup["username"] = username json_signup["password"] = password url = 'http://APIhost:port/register/' # 접속할 사이트주소 또는 IP주소를 입력한다 data = json_signup # 요청할 데이터 # (example) data = {"username":"test123","password":"testword123"} print(data) response = web_request(method_name='POST', url=url, dict_data=data) return HttpResponse('success') return render(request, "accounts/signup.html") 탬플릿의 http에서 따온 변수 userid, userpw를 따와서 파이썬 내장 모듈인 json을 통해서 json파일을 만들고 data 변수에 입력하고 위에서 만든 함수를 통해 api에 json 으로 POST 요청을 보내는 함수를 디자인하여 해결했습니다. 위 처럼 json을 통해 로그인과 패스워드를 api 서버와 주고받는다면 보안적으로 이슈가 될 만한 사항이 있을까요? -----------------------------------
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
덕분에 강의 잘 들었습니다. nginx https 리다이렉트가 잘 안 되어 질문드립니다~
덕분에 강의 잘 들었습니다. 정말 감사드립니다~ 다름이 아니라, nginx에서 https://walkwithus.shop(제 도메인)으로 접근했을 때는 인증서를 가진 체로 잘 접근이 되나 http://walkwithus.shop으로 접근했을 때는 nginx에 https로 리다이렉트 되도록 설정을 했음에도 불구하고, 리다이렉트가 잘 안 되고 있습니다. 처음 certbot이 설정해준 대로 하여도 잘 안 되어서, 여러 방법들을 오랜 시간 시도해보았지만, 잘 안 되었습니다. 도움주신다면 정말 감사하겠습니다. 감사합니다~
-
해결됨모든 개발자를 위한 HTTP 웹 기본 지식
Http form data 전송에 관하여 질문이있습니다!
안녕하세요 김영한선생님의 스프링강의와 이번http강의까지 잘들으면 일본에서 밥벌어먹고 사는 이재화라고합니다. 알찬강의에 늘 감사하고있습니다 이번에 제가 맡은 기능개발중에 x-wwwformurlencoded형식으로 되어있는 상대편api에 리퀘스트를 하는곳이있는데요 전송할 전문이 Post메소드를 이용해서 post param에 기타 여러항목들과 최대10메가의 csv데이터를 함께 보내야하는데 이 경우는 content-type을 form multipart로 안하고 x-wwwformurlencoded로 보내는 게 가능한가요? 저는 spring webclient body에 multivaluemap를 생성해서 다른파라메터랑 똑같이 csv를 바이트에서 스트링으로 변환시켜서 맵에 저장하고 맵을 파라메터로 넘겨주면 될까 생각했는데요 이렇게해도 되는걸까요? 구글링해도 이런방식에대한 정보가 별로 없어서 질문드려봅니다
-
해결됨모든 개발자를 위한 HTTP 웹 기본 지식
쿠키에 관련해서 질문드립니다.
안녕하세요. 강의를 듣고 여러 프로젝트를 하면서 개념이 정리가 잘되지 않아서 이렇게 질문 드립니다. 실제로 일을 하다보면 여러 쿠키에 대한 여러 설정값이 나오더라구요. withcredentials, sameSite, secure, httponly 등등... 첫 번째로 서로 다른 도메인에서 쿠키를 주고 받으려면 클라, 서버 둘 다 withcredential = true 로 설정해야 된다는 것을 알고 있습니다. 만약 클라가 aaa.com이고 api요청을 api.aaa.com을 가지고 있는 서버에 준다고 하면 withcredential에 대한 설정을 어떻게 해야 하는 건지 궁금합니다. aaa.com과 api.aaa.com은 sameSite이고 서로 다른 origin 인것까지는 이해했습니다. 인터넷에 여러 글을 찾아봐도 어떤 글은 서로 다른 도메인간의 쿠키 전달이라고 명시되어 있는 반면 아떤 글은 서로 다른 origin 간의 쿠키 전달 옵션이라고 되어 있어 혼란스럽습니다. 결론적으로 1. 도메인과 서브 도메인의 도메인 일치 여부 2. withcredential 옵션의 기준 -> 서로 다른 도메인인지, 서로 다른 origin인지 3. sameSite 가 같은 도메인을 의미하는지 그래서 클라: aaa.com 서버: api.aaa.com 환경에서 withCredentials 설정을 해줘야하는지 궁금합니다. 답변해주시면 감사합니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
Patch 대신 POST를 사용한다는 말이 이해가 되지 않습니다.
PATCH를 지원하지 않을 경우 POST를 사용하면 된다고 하셨는데, 왜 PUT이 아니라 POST를 사용하는 지 이해가 되지 않습니다. PATCH는 리소스의 식별자를 클라이언트에서 아는 경우인데, 그래도 PUT이 아니라 POST를 대신해서 사용하나요?
-
미해결Ionic, 아이오닉 100분 핵심강의
아이오닉 http post 방식
안녕하세요! 아이오닉에서 사진파일을 업로드해서 모델이 있는 flask서버로 보내고 싶은데 post하지 못하고 http 400에러를 뱉는 상황이 나오네요 대체 어떤 코드가 잘못된건지 모르겠습니다ㅠㅠ 에러내용: HttpErrorResponse {headers: HttpHeaders, status: 400, statusText: "OK", url: "https://reqres.in/api/register", ok: false, …} postData(){ console.log('post data'); var url = 'https://reqres.in/api/register'; let postData =new FormData(); postData.append('email','eve.holt@reqres.in'); postData.append('password','pistol'); this.data = this.http.post(url, postData); this.data.subscribe(data =>{ console.log(data); });
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
HTTP API 설계 질문
안녕하세요. 좋은 강의 감사드립니다. HTTP API 설계와 관련하여 궁금한 점 질문 드리고자 합니다. 1. /members/{id} 와 같은 API URL에서 {id}에는 특정 회원을 식별할 수 있는 값, 주로 회원 테이블의 PK 값이 들어간다고 생각하면 될까요? 2. 만약 그렇다면 API 설계 시 URL에 PK 값을 노출시키는 것은 보안 상으로 문제가 되지 않는 것인가요? 3. 만약 회원 테이블의 PK가 id, email이라면(즉 특정 회원을 식별하기 위해서 id, email 두 개의 값이 필요하다면) /members/{id}/email/{email} 이런 식으로 설계해야 할까요? 실제 현업에서는 어떤 방식으로 하시는지 궁금해 여쭤봅니다. 감사합니다.
-
미해결리액트로 나만의 블로그 만들기(MERN Stack)
http로 배포해도 괜찮을까요?
https를 시도해보려다가 실패해서 http로 배포하려고합니다. 강의하신대로 따라했고 http로 배포한다면 보안이 위험할까요??