1. Perl / Говнокод #13605

    −139

    1. 1
    2. 2
    >> # HTML/4.01 says that line breaks are represented as "CR LF" pairs (i.e., `%0D%0A')
    >> $content =~ s/(?<!%0D)%0A/%0D%0A/g if defined($content);

    HTTP::Request::Common 6.04, строка 86
    http://cpansearch.perl.org/src/GAAS/HTTP-Message-6.04/lib/HTTP/Request/Common.pm

    Оно просто берёт и изменяет передаваемый контент. Любой. В том числе просто бинарные данные.

    Запостил: kainwinterheart, 13 Августа 2013

    Комментарии (87) RSS

    • "В том числе просто бинарные данные."

      а откуда у тебя бинарные данные в HTTP запросе? в ответе я понимаю, но с бэйс64/етц народ трахается именно потому что запрос должен быть текстом. (или мои знания HTTP совсем устарели?)

      P.S. вроде не так сильно устарели:
      http://www.w3.org/TR/html401/interact/forms.html#h-17.13 для случая "multipart/form-data" ссылается на:
      http://www.rfc-editor.org/rfc/rfc2045.txt который в 6.2 говорит что:
      > As of
      > the initial publication of this document, there are no standardized
      > Internet mail transports for which it is legitimate to include
      > unencoded binary data in mail bodies. Thus there are no
      > circumstances in which the "binary" Content-Transfer-Encoding is
      > actually valid in Internet mail.

      другими словами, base64 все еще остается единственным способом посылать двоичные данные в запросе.
      Ответить
      • Плейнтекстом все шлется же. На сервер - multipart или просто данные в пейлоаде, обратно - спокойно.
        Ответить
      • Или я могу поэнкодить свою бинарщину каким-нибудь URI::Escape'ом, и это уже будут закодированные бинарные данные, без base64 и подобного. "multipart/form-data" в конкретном случае не подходит, поэтому используется "application/x-www-form-urlencoded", в котором одно из значений как раз-таки так и представлено, а пары ключ-значение лежат в теле post-запроса. К тому же, в RFC не вижу никаких MUST касательно необходимости преобразования исходного отправляемого контента.
        Ответить
        • > К тому же, в RFC не вижу никаких MUST касательно необходимости преобразования исходного отправляемого контента.
          HTTP, емнип, нигде не требует.

          Но портят данные они не из-за HTTP, а, внезапно, из-за HTML 4.01, которое в пункте 17.13.4 Form content types говорит нам: "Line breaks are represented as "CR LF" pairs (i.e., `%0D%0A')."

          Имхо тут надо было бы какую-нибудь опцию, позволяющую работать в двух режимах - raw и html-compatible. Ибо на HTML свет клином не сошелся.

          P.S. А все-таки. Почему не подошел multipart/form-data?
          Ответить
          • >> опцию, позволяющую работать в двух режимах
            - Хотя бы. С другой стороны, оно же не для работы с HTML, а для работы с HTTP. Причём тут вообще HTML у него - остаётся загадкой.

            >> Почему не подошел multipart/form-data
            - Используем Kyoto Tycoon, а в него если писать данные http-запросом вместо memcached-протокола или же его собственного бинарного протокола, то оно не понимает post с multipart/form-data.
            Ответить
            • > Причём тут вообще HTML у него
              Основной юзкейс HTTP как бы, вот все под него и затачиваются, в ущерб остальными применениям...

              > Используем Kyoto Tycoon
              Понятно, т.е. протокол так требует.
              Ответить
            • показать все, что скрытоvanished
              Ответить
          • показать все, что скрытоvanished
            Ответить
        • > поэтому используется "application/x-www-form-urlencoded",

          еще раз: какие в ж@пу *двоичные* данные в *urlencoded* формате?

          КЭП в отпуске, очевидно.
          Ответить
      • Ответить
      • > in Internet mail
        Эм, а почему вы ориентируетесь на это RFC? RFC 2616 (HTTP 1.1 от 99 года) говорит об обратном.

        http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.4.5
        19.4.5 No Content-Transfer-Encoding
        HTTP does not use the Content-Transfer-Encoding (CTE) field of RFC 2045. Proxies and gateways from MIME-compliant protocols to HTTP MUST remove any non-identity CTE ("quoted-printable" or "base64") encoding prior to delivering the response message to an HTTP client.

        Т.е. если кто-то и применяет там base64, то применяется оно на прикладном уровне, а не на уровне HTTP протокола, где его использование вообще запрещено.
        Ответить
      • показать все, что скрытоvanished
        Ответить
    • Вы не поверите, но огромное количество файлозагрузчиков класть хотели с прибором на эти нормативные документы. Т.как эти нормативные документы написаны людьми... очень недальновидными. Прям-таки всем очень хочется перекодировать содержание картинок в бейс64 и обратно. Просто архиважно, как жеж без этого картинки смотреть.
      Вообще, если по-хорошему, то все документы которые для чего бы то ни было предписывают использование бейс64 нужно пытаться устранить как-нибудь. Это идитское требование совершенно несоответствующее современным жизненным реалиям.
      Ответить
      • Передача бинарных файлов (в частности, ключей шифрования) через текстовые каналы.
        Ответить
        • Ну обычная картинка не ключ шифрования. А HTTP - не текстовый канал ;) Так что для файлозагрузчиков base64 и правда ненужно.
          Ответить
        • О, да, верняк, забыл... почитать на досуге публичные ключи моих друзей.
          Нафига их передавать через текстовые каналы?
          Ответить
          • >> с бэйс64/етц народ трахается именно потому что запрос должен быть текстом

            А ответ бинарными данными?
            Ответить
          • Так повелось исторически. Можно передать через протокол текстового чатика, если придумать упоротый синтетический пример, даже через телнет.
            Второе (чуть более реальное) применение - аттачи в почте до сих пор как-то так должны кодироваться.

            А, чуть не забыл, тоже верх упоротости. У меня на работу есть RDP, но отключена передача файлов. Прямого доступа нет, та машина не в инторнетах, потому мелкие файлы я кодирую в base64, потом передаю через стандартный буфер обмена, а там распаковываю.
            Ответить
          • показать все, что скрытоvanished
            Ответить
      • показать все, что скрытоvanished
        Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоwh0cd138185 <a href=http://acyclovir.cool/>acyclovir</a> <a href=http://paxil.cash/>paxil hair loss</a> <a href=http://clonidine.business/>clonidine pill identifier</a> <a href=http://trazodone.fail/>trazodone</a> <a href=http://erythromycin.zone/>erythromycin</a> <a href=http://atenolol.sexy/>atenolol</a> <a href=http://tetracycline.directory/>buy cheap tetracycline</a> <a href=http://baclofen.exposed/>baclofen tablets 10mg</a>
      Ответить
    • показать все, что скрытоwh0cd246907 <a href=http://indocin.us.org/>indocin mastercard</a> <a href=http://onlinecitalopram.us.com/>citalopram tab 20mg</a> <a href=http://onlinelasix.us.com/>info</a>
      Ответить
    • показать все, что скрытоwh0cd518713 <a href=http://effexor3.us/>price of effexor</a> <a href=http://antabuse.us.org/>disulfiram</a>
      Ответить
    • показать все, что скрытоwh0cd573073 <a href=http://stratteranorx.us.com/>strattera no rx</a>
      Ответить
    • показать все, что скрытоwh0cd736155 <a href=http://augmentinantibiotic.us.com/>augmentin</a> <a href=http://cialis20.us.org/>citation</a> <a href=http://advaironline.us.com/>advair online</a>
      Ответить
    • показать все, что скрытоwh0cd431506 <a href=http://zyloprim.us.com/>order zyloprim</a>
      Ответить
    • показать все, что скрытоwh0cd724837 <a href=http://provera2017.top/>provera</a> <a href=http://buybaclofen-6.gdn/>baclofen buy</a> <a href=http://buyabilify2015.top/>abilify</a>
      Ответить
    • показать все, что скрытоwh0cd887917 <a href=http://cafergot.tools/>cafergot</a> <a href=http://abilify.business/>abilify</a> <a href=http://zetia.life/>continue</a> <a href=http://toradol.city/>toradol</a>
      Ответить
    • показать все, что скрытоwh0cd115550 <a href=http://abilify7.top/>abilify</a> <a href=http://adalat2017.top/>adalat</a> <a href=http://buyarimidex1.gdn/>arimidex price</a> <a href=http://proscar-9.us/>generic proscar</a> <a href=http://atarax2017.top/>atarax drug</a> <a href=http://bupropion-4.top/>bupropion</a>
      Ответить
    • показать все, что скрытоwh0cd550447 <a href=http://tamoxifen.desi/>nolvadex tamoxifen</a> <a href=http://zoloft.sexy/>zoloft</a> <a href=http://albuterol.zone/>albuterol asthma</a>
      Ответить
    • показать все, что скрытоwh0cd571949 <a href=http://buysildalis247.us/>sildalis online</a> <a href=http://erythromycin2010.top/>erythromycin</a> <a href=http://propranolol5.us/>propranolol</a>
      Ответить
    • показать все, что скрытоwh0cd626309 <a href=http://motilium.us.com/>motilium</a> <a href=http://benicar2017.us.com/>benicar</a> <a href=http://costofviagra.us.com/>cost of viagra</a>
      Ответить
    • показать все, что скрытоwh0cd39665 <a href=http://buycolchicine2013.top/>colchicine</a> <a href=http://buycolchicine2.us/>buy colchicine</a> <a href=http://medrol500.top/>medrol 4mg pak</a> <a href=http://buyrobaxin2016.gdn/>robaxin/methocarbamol 500mg</a> <a href=http://buyacyclovir365.us/>i found it</a> <a href=http://bupropion-4.top/>bupropion</a> <a href=http://buyneurontin2013.top/>neurontin 400mg</a>
      Ответить
    • показать все, что скрытоwh0cd61185 <a href=http://elimite.zone/>elimite</a> <a href=http://furosemide.camera/>furosemide</a> <a href=http://wellbutrin.sexy/>wellbutrin</a> <a href=http://antabuse.fail/>antabuse</a> <a href=http://effexor.coffee/>effexor</a> <a href=http://revia.zone/>revia</a> <a href=http://atarax.live/>atarax</a>
      Ответить
    • показать все, что скрытоwh0cd680669 <a href=http://vermox.casa/>vermox</a> <a href=http://flagyl.coffee/>flagyl</a> <a href=http://methotrexate.camera/>methotrexate 2.5mg tablets</a> <a href=http://stromectol.business/>click</a>
      Ответить
    • wh0cd354509 <a href=http://buyinderal2017.gdn/>inderal</a> <a href=http://cialis4.top/>cialus</a> <a href=http://buycolchicine100.top/>buy colchicine</a> <a href=http://buyseroquel2.gdn/>seroquel</a> <a href=http://buyneurontin-365.top/>buy neurontin</a>
      Ответить
    • wh0cd157465 <a href=http://crestor12.gdn/>crestor 5mg</a> <a href=http://erythromycin6.top/>erythromycin</a> <a href=http://buyventolin-5.top/>found here</a> <a href=http://levitra1.gdn/>levitra</a> <a href=http://buycafergot-0.top/>cafergot</a> <a href=http://viagra2017.top/>viagra</a>
      Ответить
    • wh0cd594595 <a href=http://antabuse365.us.com/>antabuse online</a>
      Ответить
    • wh0cd670474 <a href=http://cialisonline24.us.org/>cialis online</a> <a href=http://buytrazodone.us.com/>Buy Trazodone</a> <a href=http://azithromycin24.us.org/>purchase azithromycin 500 mg tablets</a> <a href=http://celebrex365.us.com/>celebrex online</a>
      Ответить
    • wh0cd942276 <a href=http://genericcialis24.us.org/>generic cialis 20 mg</a> <a href=http://advair247.us.org/>generic advair diskus</a>
      Ответить
    • wh0cd311467 <a href=http://buybenicar250.top/>benicar</a> <a href=http://buyavodart2.top/>avodart</a> <a href=http://buycafergot25.gdn/>buy cafergot</a> <a href=http://buytadalafil11.top/>buy tadalafil</a> <a href=http://rimonabant2014.top/>acomplia rimonabant</a> <a href=http://elimite12.top/>elimite</a> <a href=http://buyviagrasoft10.top/>viagra soft</a> <a href=http://buyventolin-5.top/>ventolin</a>
      Ответить
    • wh0cd354511 <a href=http://buyviagraonline24.us.org/>viagra nyc</a> <a href=http://amoxil24.us.org/>cheap amoxil</a>
      Ответить
    • wh0cd322787 <a href=http://gabapentin.us.com/>order gabapentin</a> <a href=http://sildenafil4you.us.org/>sildenafil citrate</a> <a href=http://lexapro2016.us/>lexapro</a> <a href=http://retina365.us.com/>Retin-A</a>
      Ответить
    • wh0cd377147 <a href=http://cialisforsale.us.com/>cheapest cialis</a> <a href=http://buyzyban247.us.com/>zyban</a> <a href=http://flagyl.us.com/>buy flagyl</a> <a href=http://buyfluoxetine.us.com/>buy fluoxetine</a> <a href=http://diamox.us.com/>diamox</a>
      Ответить
    • wh0cd257103 <a href=http://vardenafil365.us.com/>vardenafil</a>
      Ответить
    • wh0cd876596 <a href=http://cialis20mg247.us.org/>cialis 20mg</a> <a href=http://augmentin24.us.org/>augmentin online</a> <a href=http://medrol24.us.org/>Medrol Pak 4mg</a>
      Ответить
    • wh0cd930957 <a href=http://buyrevia7.top/>generic revia</a> <a href=http://buyadvair25.gdn/>buy advair diskus</a> <a href=http://buycelexa6.gdn/>buy celexa</a> <a href=http://stromectol2013.top/>stromectol</a> <a href=http://lasix17.top/>lasix</a> <a href=http://robaxin-2.gdn/>robaxin</a> <a href=http://buyvermox1.top/>buy vermox</a>
      Ответить
    • wh0cd287717 <a href=http://lasix247.us.org/>Lasix Prices</a>
      Ответить
    • wh0cd124626 <a href=http://cialis247.us.org/>cialis</a> <a href=http://furosemide24.us.org/>order furosemide</a> <a href=http://trazodone24.us.org/>Order Trazodone</a>
      Ответить
    • wh0cd396432 <a href=http://ventolin100.top/>ventolin</a> <a href=http://lisinopril17.top/>lisinopril 20 mg tablet</a> <a href=http://albuterol4.top/>albuterol</a>
      Ответить
    • wh0cd48743 <a href=http://buyyasmin-3.gdn/>yasmin</a> <a href=http://retina-9.top/>retin-a</a> <a href=http://buydiflucan9.top/>can you buy diflucan without a prescription</a> <a href=http://ventolin20.top/>ventolin</a> <a href=http://viagra2017.top/>viagra</a> <a href=http://baclofen500.gdn/>baclofen</a> <a href=http://buyventolin365.gdn/>ventolin</a>
      Ответить
    • wh0cd573065 <a href=http://cheapviagra247.us.org/>viagra to buy</a> <a href=http://buyviagraonline247.us.org/>viagra</a> <a href=http://medrol247.us.org/>medrol online</a>
      Ответить
    • wh0cd82711 <a href=http://propecia2.us/>buy propecia</a> <a href=http://robaxinnorx.us.com/>robaxin no rx</a> <a href=http://buy-levaquin.com/>buy levaquin</a>
      Ответить
    • wh0cd735039 <a href=http://cymbaltamedication.us.com/>cymbalta medication</a> <a href=http://erektionen.se/cialis.html>potenshГ¶jande medel</a>
      Ответить
    • wh0cd821111 <a href=http://buyviagrasoft.us.com/>cheap viagra soft</a>
      Ответить
    • wh0cd571949 <a href=http://synthroid-0.top/>synthroid 75 mg</a> <a href=http://buylasix2016.top/>lasix</a> <a href=http://buytenormin9.top/>tenormin</a>
      Ответить
    • wh0cd626309 <a href=http://buysildenafil2015.top/>sildenafil</a> <a href=http://buyanafranil2013.top/>anafranil</a> <a href=http://buyflagyl365.gdn/>flagyl without prescription</a> <a href=http://buystrattera2012.top/>atomoxetine cost</a> <a href=http://zithromax2.top/>zithromax</a>
      Ответить
    • wh0cd875471 <a href=http://viagrasoft247.us.org/>viagra soft</a>
      Ответить
    • wh0cd680669 <a href=http://eloconcreamforsale.us.com/>elocon online</a> <a href=http://buybaclofen.us.com/>Baclofen Without A Prescription</a> <a href=http://metformin2017.us.com/>metformin</a> <a href=http://antabuse.biz/>Antabuse</a> <a href=http://doxycyclinehyclate.us.com/>doxyhexal</a>
      Ответить
    • wh0cd7943 <a href=http://revia500.top/>revia cost</a> <a href=http://anafranil1.top/>anafranil</a> <a href=http://buytoradol25.gdn/>buy toradol online</a> <a href=http://buyseroquel2014.top/>seroquel quetiapine</a> <a href=http://buyrevia2.top/>revia</a> <a href=http://retina2016.gdn/>tretinoin buy</a> <a href=http://levitra1.gdn/>buy generic levitra online</a>
      Ответить
    • wh0cd62309 <a href=http://viagraprice247.us.org/>viagra price</a>
      Ответить
    • wh0cd463235 <a href=http://cialisgeneric24.us.org/>cialis generic</a> <a href=http://cialis20mg24.us.org/>cialis price comparison</a>
      Ответить
    • wh0cd537998 <a href=http://buyhydrochlorothiazide2013.top/>hydrochlorothiazide</a> <a href=http://buyprednisone20.top/>buy prednisone</a> <a href=http://buyanafranil365.top/>anafranil</a> <a href=http://trazodone-365.top/>buy trazodone online</a> <a href=http://buyatenolol2015.top/>atenolol</a>
      Ответить
    • wh0cd148387 <a href=http://provera24h.us.org/>provera 2.5 mg</a>
      Ответить
    • wh0cd278632 <a href=http://prednisolone247.us.org/>Prednisolone</a> <a href=http://cheapviagra247.us.org/>Cheap Viagra</a> <a href=http://wellbutrin24h.us.org/>wellbutrin xl</a>
      Ответить
    • wh0cd441717 <a href=http://albendazole2016.us.com/>albendazole online</a> <a href=http://tetracyclinenorx.us.com/>tetracycoline with out a prescription</a> <a href=http://erythromycin365.us.com/>erythromycin</a>
      Ответить
    • vanished
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоvanished
      Ответить

    Добавить комментарий