@schors
schors
27 Apr 2015

А кто мне может объяснить реальный смысл HTTP POST/PUT/PATCH/UPDATE? Я читал RFC, да. А зачем? Чтобы надпись на заборе красивее была?

27 Apr 2015

schors, семантика. Хтмл тоже можно таблицами верстать, но header/content/aside/footer логичнее и понятнее.

27 Apr 2015

зачем семантика в низкоуровневом протоколе? прости, но три адаптера на три простых действия - это пиздец

#ovngmp/2 в ответ на /1
27 Apr 2015

schors, даже в протоколах ещё более низкого уровня есть место какой-нибудь важной информации или тому же флагу. а HTTP — вообще прикладной.

#ovngmp/3 в ответ на /2
27 Apr 2015

schors, низкоуровневый — это TCP. А это самый верхний уровень. Ну удобно же, когда API можно сформулировать понятиями самого протокола, без велосипедов. Единообразие и стандартизация опять же.

#ovngmp/4 в ответ на /2
27 Apr 2015

и что? зачем в нём плодить сущности?

#ovngmp/5 в ответ на /3
27 Apr 2015

schors, затем, что иначе эти сущности будут плодить разработчики, причём, кто во что горазд.

#ovngmp/6 в ответ на /5
27 Apr 2015

а его нельзя сформулировать, в том и дело. представь, что ты пишешь ну пусть ну питоне API для А-записи DNS. добавить, изменить, удалить. тебе минимум две функции адаптера придётся писать только потому что они параметры по разному воспринимают. не знаю как там DELETE. для трёх простейших действий максимум с двумя параметрами. что ты там куда вынес? ты дрочишь потом на HTTP что ли? ты его не видишь вообще, что там за инкрустации-то?

#ovngmp/7 в ответ на /4
27 Apr 2015

а и так придётся. GRUD мягко говоря недостаточно для REST. в итоге и там сущности, и там сущности

#ovngmp/8 в ответ на /6
27 Apr 2015

Желаю что б у тебя все действия GET запросами выполнялись на сайтах.

27 Apr 2015

вижу только одну проблему для этого. длину строки запроса

#ovngmp/10 в ответ на /9
27 Apr 2015

schors,

<img src="http://you.host/drop/all/my/databases"/>

И ты даже ничего не заметишь при заходе на страницу.

#ovngmp/11 в ответ на /10
28 Apr 2015

ключ авторизации сам передастся?

#ovngmp/12 в ответ на /11
28 Apr 2015

schors, сессия? Если ты залогинен, то да.

#ovngmp/13 в ответ на /12
28 Apr 2015

это не рест-вей ) и утт я с ними согласен

#ovngmp/14 в ответ на /13
28 Apr 2015

schors, затем, что они появляются там далеко не просто так. и помогают разрабам ещё более прикладных протоколов отлаживать свои идиотские творения

#ovngmp/15 в ответ на /5
28 Apr 2015

угу. пися 120 функций одного и тгго же с заменой имени метода. ппц как удобно

#ovngmp/16 в ответ на /15
28 Apr 2015

schors, а ты предпочитаешь всё в одну функцию упихать?

#ovngmp/17 в ответ на /16
28 Apr 2015

нет. но я бы претпочёл func_http_post(url,data_dict) четырем идентичным func_http_<method>, различающимся внутри только параметрами в curl и методам запихивания data_dict - в строку или в тело

#ovngmp/18 в ответ на /17
28 Apr 2015

schors, приведи конкретный пример такого.

#ovngmp/19 в ответ на /18
28 Apr 2015

чего пример? то что POST надо пихать переменные в тело, а в GET в строку - это понятно? То что CURL имеет опцию метода (причём разную) для методов это понятно? понятно что на каждый метод надо свою обёртку написать?

#ovngmp/20 в ответ на /19
28 Apr 2015

schors, GET для получения контента, POST для добавления. Совершенно разный функционал. Вполне логично сделать две функции, а не одну.

#ovngmp/21 в ответ на /20
28 Apr 2015

блять. это один функционал. это запрос-ответ к веб серверу. за то что туда пихается и как интерпретируется ответ отвечает всё равно не curl

#ovngmp/22 в ответ на /21
28 Apr 2015

Ты вообще в курсе, что гет - идемпотентен? Ну хотя бы это уже их разделяет. Дальше. При чем тут вообще куча функций к протоколу? Пиши одну, на всё.

#ovngmp/23 в ответ на /22
28 Apr 2015

schors, ну так в вебе всё запрос-ответ, и что теперь, всё в одну кучу валить?

#ovngmp/24 в ответ на /22
28 Apr 2015

schors, и совершенно непонятно, при чём тут вообще curl.

#ovngmp/25 в ответ на /22
28 Apr 2015

я не понимаю что такое "идемпотентен". по факту я в телнет пишу URI+QUERY_STRUNG, всякие HTTP-заголовки, тело, получаю ответ в виде HTTP-заголовков и тела. что в POST, что в GET, что в остальных. GET может быть хоть импотентен - это будет зависеть от того, как приложение обработает запрос. я не понимаю зачем каблуком забивать в транспортный протокол логику приложения, один хер он её обработать не сможет

#ovngmp/26 в ответ на /23
28 Apr 2015

да. именно так. потому что это суть этого уровня прослойки.

#ovngmp/27 в ответ на /24
28 Apr 2015

ну возьми не curl, а arts_super_http_client_lib. суть не изменится.

#ovngmp/28 в ответ на /25
28 Apr 2015

schors, затем, блять, что на этом стоит весь веб, а не твоё импотентное приложение. если ты не понимаешь хттп — хуле ты вообще спор завёл? пользуйся одним гетом на всё.

а идемпотентен - чтоб ты знал - это значит, что сервер ОБЯЗАН вернуть один ответ на один и тот же запрос.

#ovngmp/29 в ответ на /26
28 Apr 2015

schors, так тебе никто не запрещает так делать. Ты можешь вообще вообще весь сайт в один файл запихать, вместе с вёрсткой, скриптами и стилями, если тебе так удобно.

#ovngmp/30 в ответ на /27
28 Apr 2015

данные в GET ты всё один будешь через & пихать в строку запроса, а в POST тем же раком в тело. в PUT/DELETE кстати не знаю - не могу найти где посмотреть

#ovngmp/31 в ответ на /28
28 Apr 2015

я в шоке вообще такие вещи слышать от хостера.

#ovngmp/32 в ответ на /26
28 Apr 2015

не понимаю кейса этого. вот реально. я понимаю что написали и что это. но я не понимаю зачем это

#ovngmp/33 в ответ на /29
28 Apr 2015

schors, ну, хттп писали чуваки явно не тупее нас с тобой. кейс гета - поиск, запрос. кейс поста - сохранение. остальное - для удобства, ну даже чтения логов.

#ovngmp/34 в ответ на /33
28 Apr 2015

дурной пример. зачем css/js/html в разных файлах или в одном - вполне имеет логику. зачем внезапно какую-то часть логики дублировать в транспортный протокол я пока не понял

#ovngmp/35 в ответ на /30
28 Apr 2015

не надо переоценивать ум тех, кто дорвался до IETF. они просто дорвались до IETF и уболтали тусовку. слушай, я даже видел какие-то документы для SOAP

#ovngmp/36 в ответ на /34
28 Apr 2015

schors, хттп - прикладной протокол. прекрати уже.

#ovngmp/37 в ответ на /35
28 Apr 2015

думаешь все хостеры дураки и не умеют думать и никогда не прграммируют?

#ovngmp/38 в ответ на /32
28 Apr 2015

schors, после этого треда — да, я буду так думать. до него — не представлял даже, что такое бывает.

#ovngmp/39 в ответ на /38
28 Apr 2015

это он в модели OSI или TCP прикладным называется. а если мы рассматриваем модель веб-приложений, то он как раз транспортный

#ovngmp/40 в ответ на /37
28 Apr 2015

schors, даже TCP-пакет имеет параметры, флаги и уровень срочности.

#ovngmp/41 в ответ на /40
28 Apr 2015

да чушь. я наверное в пятый раз говорю - я не понял зачем я сделал 4 обёртки на curl программируюя просто смену IP в API одной известной фирмы. два экрана кода блять только потому что кому-то всралось побравировать словами "идемпотентен"

#ovngmp/42 в ответ на /39
28 Apr 2015

прекрасно. напомни, где в TCP указывается Conent-type для HTTP? так было бы удобно

#ovngmp/43 в ответ на /41
28 Apr 2015

schors, чтение логов упрощается в разы. а твоя лень — она твоя. лень.

#ovngmp/44 в ответ на /42
28 Apr 2015

чтение логов? какая тебе разница какую часть парсить - метод или URI? хоть авто, хоть глазами

#ovngmp/46 в ответ на /44
28 Apr 2015

вот и я спрашиваю - нахуй HTTP знать добавил я или удалил пост на форуме, один хрен это делает не HTTP

#ovngmp/47 в ответ на /45
28 Apr 2015

schors, это один из примеров. второй - чтение своего же кода становится проще.

#ovngmp/48 в ответ на /46
28 Apr 2015

да чем оно проще, если из двухмерной ситемы URI|BODY я вдруг получаю двумерную URI|METHOD|BODY?

#ovngmp/49 в ответ на /48
28 Apr 2015

лишней сущностью, забитой в нижестоящий протокол

#ovngmp/52 в ответ на /51
28 Apr 2015

schors, POST предназаначен для операций, имеющих последствия (вот тут man идемпотентность).

Не все для серфинга пользуются curl'ом, как ты:-) Есть такая штука, браузер называется. И в этом самом браузере для разных методов определено разное поведение с учётом задач, на эти методы возложенных, и последствий выполнения этих задач.

А в случае с API — семантика и только семантика. Если тебе удобнее использовать только GET — используй на здоровье. Здесь принципиальной разницы нет.

#ovngmp/53 в ответ на /52
28 Apr 2015

Только тогда тебе придётся прибивать дополнительные костыли для защиты от CSRF.

#ovngmp/54 в ответ на /53
28 Apr 2015

ты смеешься надо мной? как раз браузер кроме GET/POST ничего и не умеет

#ovngmp/55 в ответ на /53
28 Apr 2015

уболтали черти. может что-то в этом и есть. где посмотреть документы на тему QUERY_STRING и там передачи параметров в POST и что с этим в DELETE/PUT? чего-то нарыть не могу

28 Apr 2015

schors, а на остальные методы можешь забить.

#ovngmp/59 в ответ на /55
28 Apr 2015

schors, а остальные для всяких API нужны в первую очередь.

#ovngmp/60 в ответ на /55
28 Apr 2015

чушь. только потому что их браузер не умеет :)

#ovngmp/61 в ответ на /60
28 Apr 2015

schors, DELETE обычно не передают параметров — это запрос на удаление ресурса, указанного в URI. А у PUT формат такой же, как и у POST.

#ovngmp/62 в ответ на /58
28 Apr 2015

мы сейчас вернемся к разубеждению меня опять. а токен доступа по ментальной связи прилетит? :)

#ovngmp/64 в ответ на /62
28 Apr 2015

ну js это js. это понятно

#ovngmp/66 в ответ на /63
28 Apr 2015

хм... мысль интересная. и ведь есть такие

#ovngmp/67 в ответ на /65

Добавить пост

Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Для форматирования текста используется Markdown.