Александр
Но это не точно
Dmitri
уровень представления?
Deleted
уровень представления?
Прям берет и работает?
Dmitri
а, ты про то, что дает функционал 6 уровня?
Deleted
Угу
Dmitri
по сути, сериализаторы, имхо. Тысячи их.
Deleted
Ну какие, лол, хоть одно название
Sergei
мальчики, настоящие сети работают по модели TCP/IP. в ней нет шестого уровня.
Dmitri
мальчики, настоящие сети работают по модели TCP/IP. в ней нет шестого уровня.
5,6 и 7 - это уровни приложения, оно внутри приложухи работает
Deleted
мальчики, настоящие сети работают по модели TCP/IP. в ней нет шестого уровня.
Четвёртый уровень можно спокойно разложить на 3 верхних в оси
Dmitri
а восьмой чего нет? :)
в модели OSI - нет
Sergei
Dmitri
Четвёртый уровень можно спокойно разложить на 3 верхних в оси
фактически, последние три уровня - это абстракция уровня приложения
Sergei
и на засыпку интересный вопрос тогда
Deleted
Это эталон, чувак
Sergei
у вас просто HTTP-сервис. Какой протокол работает на шестом уровне?
Deleted
Никто не говорит, что эталон идеален
Dmitri
Это эталон, чувак
даже больше, это МОДЕЛЬ.
Sergei
HTTP.
Deleted
Ascii тогда
Deleted
Как способ представления данных
Sergei
ты понимаешь же, что ASCII это способ _кодирования_ данных, а не передачи?
Sergei
JSON тогда тоже протокол?
Deleted
Уровень передачи данных лежит ниже
Deleted
А представление это так же и кодирование, ведь кодирование это изменение представления
Sergei
а тебе на 6-м никто передачу и не обещал
как ни странно, TCP/IP при этом не пропускает уровни.
Sergei
Osi тоже
в случае HTTP что работает на шестом уровне?
Sergei
ASCII - не протокол. это просто таблица в памяти.
Deleted
С помощью ascii из твоих красивых буковок получаются цифровые коды
Deleted
Почитай интернет же, там подробно об этом
Dmitri
6 уровень - это упаковка того, что ты хочешь передать, в набор байт, который нужно отдать второй стороне
Sergei
С помощью ascii из твоих красивых буковок получаются цифровые коды
и в обратную сторону тоже. впрочем, совсем необязательно (например, подумайте, как передаются бинарные данные в HTTP). ascii - это не протокол, это таблица перекодировки, причем лишь некоторых частей ответа.
Sergei
6 уровень - это упаковка того, что ты хочешь передать, в набор байт, который нужно отдать второй стороне
любой уровень, кроме физического - это упаковка того что ты хочешь передать в набор байт, который нужно отдать второй стороне.
Dmitri
смотри, на 7 уровне у тебя приложение. Допустим, ООП-приложение. У тебя экземпляр класса, т.е. объект. Оно логично, что передать его "как есть", да еще и чтобы оно было понято другой стороной - задача весьма нетривиальная и даже, местами, неразрешимая.
Dmitri
Для этого нужен 6-й уровень. Ты упаковываешь свой объект в последовательность байт, которые, будучи прочтитаны "как есть", смогут быть поняты другой стороной.
Sergei
а, то есть JSON-сериализация объектов, которая работает поверх HTTP, на самом деле шестой уровень?
Dmitri
На 5-м ты устанавливаешь сеанс связи и "кидаешь" в него свою последовательность байт.
Sergei
На 5-м ты устанавливаешь сеанс связи и "кидаешь" в него свою последовательность байт.
почему не на четвертом? там ты устанавливаешь сессию и кидаешь в него свою последовательность байт.
Dmitri
Как, какой сеанс, какими средствами, как реализовано на уровне сети - это вопрос к нижележащим уровням. Тебя, как разработчика, особо не волнует.
Dmitri
почему не на четвертом? там ты устанавливаешь сессию и кидаешь в него свою последовательность байт.
Не, сессия - уже следующий этап. У тебя, как разработчика прикладного ПО есть опять же экземпляр класса, который, условно, "умеет работать с сетью".
Dmitri
Тебя не должно заморачивать, КАК он это делает.
Sergei
и что же это такое? :)
Dmitri
детали реализации курла и нджинкса, естественно. Т.е. curllib, например
Sergei
какие детали? какие преобразования происходят между tcp-потоком и http-запросами и ответами и в обратную сторону? преобразования в виде "читать из сокета байты, раскодировать их по ASCII до тех пор пока не встретится \n\n, разделяя на токены по \n и разделяя получившиеся токены по ": ", потом читать еще Content-Length байт, потом закрыть сокет (примитивно) - это преобразование между TCP и HTTP сразу. где промежуточные уровни?
Dmitri
ты же понимаешь, что "прочитать тесктовый поток, считая <teg> началом тега, </teg> - его концом, а <teg/> - комбинацией этих символов, распарсить построчно и по предопределенным правилам получить DOM-модель в памяти браузера" - это нескольно сложнее?
Sergei
HTTP про HTML вообще ничего не говорит
Dmitri
http теперь является "протоколом передачи гипертекста"
Dmitri
смотри, можно считать сетевой моделью только то, что происходит между нодами сети - ты имеешь на это право и можешь тупо игнорировать верхние три уровня OSI в своей модели мироздания. В самой же модели то, что происходит внутри самих нод - это тоже часть сетевого взаимодействия. Это можно принимать, можно отторгать, можно игнорировать - это мало кого волнует. Особенно не волнует саму модель, она модель, ей чувства неведомы.
Dmitri
Сами разработчики говорят, что модель не идеальна, есть исключения на практике, их многие критикуют.
Dmitri
Но при этом модель есть, и она - весьма неплохая рекомендация.
Sergei
HTML между тем (даже если посчитать ее за протокол передачи данных, хотя это требует насилия над мозгом) работает поверх HTTP, поэтому быть на 5/6 уровнях не может никак. а 8-го уровня не предусмотрено.
nvkv
Oh, I got it
Dmitri
Причем рекомендация не только для системных администраторов (собственно, для них важны только нижние 4 уровня), но и для разработчиков.
nvkv
не передачи, кодирования, конечно
Dmitri
Вот этим самые три верхних уровня придуманы для того, чтобы эти самые разработчики вообще не грели голову о том, что происходит на нижних четырех.
Dmitri
Можешь воспринимать верхние 3 уровня как психологический блок для неокрепших умов разработчиков.
Dmitri
только получилась дырявая абстракция.
1. Получилась хотя бы какая-то. 2. Пригодилась миллионам софтописателей. 3. Отхождений от модели - единицы.
Dmitri
и, к слову, в чем именно "дырявость"?
Dmitri
дырявая - это же если "течет"?
Sergei
http://russian.joelonsoftware.com/Articles/LeakyAbstractions.html
Dmitri
ну т.е. да, если течет.
Dmitri
Вот смотри, пример.
Sergei
и, к слову, в чем именно "дырявость"?
дырявая в том смысле, что писать сетевые приложения, не думая о том, как устроены уровни ниже седьмого можно только в мире розовых пони.
Dmitri
Отлаживать - да, нереально. Писать -то что мешает?