C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[54546] Re:Indy ExtraHeaders
박지훈.임프 [cbuilder] 1789 읽음    2008-09-11 02:50
질문을 정확히 이해했는지 모르겠는데...

HTTP 헤더에 임의로 추가한 내용이 68바이트에서 개행 문자가 들어간다는 말씀이신지요.
일단, 정확히 68바이트가 되는 건 아니겠지만...

HTTP가 통신하는 포맷은 기본적으로는 인터넷 메시지 포맷입니다. E메일 포맷과도 같죠. 그런데 이 인터넷 메시지 포맷의 표준 정의상, 한 라인이 80컬럼이 넘으면 자동으로 개행 문자가 들어가도록 되어 있었던 걸로 기억합니다. 단순하게 개행 문자만 들어가는 게 아니라, 다음 라인에 몇개의 스페이스 문자가 들어가고 나머지가 wrap 되어서 이어집니다. 이건 '원래 의미가 다음 라인으로 넘어가는 것이 아니라 너무 길어서 래핑된 거다' 라고 알려주기 위해서구요.

이 80 컬럼 약속 말고도 75 컬럼을 쓰는 경우도 있구요. 게다가, 80/75 컬럼 규칙도 강제적인 약속은 아니어서 프로그램마다 75~80 컬럼을 넘어도 웬만하면 그냥 한줄로 다 쓰는 경우도 많습니다. 75 혹은 80 컬럼 규칙을 칼같이 지키는 프로그램도 많고요. 한마디로 중구난방이죠.

그래서, 개발하는 입장에서는, 서버쪽에서는 이게 개행문자가 들어가든 안들어가든 다음 라인의 첫 문자가 스페이스인가를 검사해서 스페이스이면 다음 라인을 이전 라인의 뒤에 붙여서 해석하도록 프로그래밍을 해야 합니다. 인터넷 프로토콜 관련 개발을 하다보면 이렇게 규칙이 루즈하게 되어 있어서 여러가지 케이스를 다 고려해야 하는 경우가 흔합니다.

그럼...


이태흔 님이 쓰신 글 :
: 안녕하세요.. HTTP Client 개발중에 막히는 부분이 있어서 염치불구하고 질문 올립니다.
:
: HTTP Header의 일부분을 자체적으로 사용할경우 다음과 같이 정의해서 사용할수 있을것 같습니다.
:
: AnsiString szAuth;
: szAuth = "뭐뭐뭐뭐.............";
: IdHTTPX->Request->ExtraHeaders->Values ["Auth"] = szAuth;
:
: 근데 위와 같은 방식으로 HTTP 데이타를 전송할 경우 szAuth에 68bytes이상 보낼경우 짤리는것 같습니다.
: 관련해서 Indy Library Core Module을 들여다봐도 68byte이상을 제한하고 있는 부분은 보이질 않고..
: (Borland C++ Builder 6.0을 설치하면 Default로 설치되는 Indy 8과 별도로 설치한 Indy9에서 동일한 현상이 있는것 같습니다.)
:
: 혹시 비슷한 경험있으신분 계시면 도움 부탁드립니다.
:
:
:
: 읽어주셔서 감사합니다.

+ -

관련 글 리스트
54516 Indy ExtraHeaders 이태흔 1554 2008/09/08
54546     Re:Indy ExtraHeaders 박지훈.임프 1789 2008/09/11
54557         Re:Re:Indy ExtraHeaders 이태흔 1487 2008/09/11
54566             Re:Re:Re:Indy ExtraHeaders 박지훈.임프 1627 2008/09/12
54544     Re:Indy ExtraHeaders [자답] 이태흔 1578 2008/09/10
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.