39

Карьера в IT. Системный аналитик, часть 7. HTTP

Серия Карьера в IT. Системный аналитик.

Всем привет.

Сегодня рассмотрим такой важный протокол, как HTTP. Важный потому, что именно его используют в качестве протокола передачи данных современные технологии интеграции (REST, gRPC).

HTTP

HTTP расшифровывается как HyperText Transfer Protocol, «протокол передачи гипертекста». Изначально этот протокол использовался для передачи гипертекстовых документов в формате HTML. Сегодня он используется для передачи произвольных данных - c помощью него можно передавать хоть JSON, хоть XML.

В основе HTTP - клиент-серверная структура передачи данных․ Клиент формирует запрос (request) и отправляет на сервер; на сервере запрос обрабатывается, формируется ответ (response) и передается клиенту.

HTTP не шифрует передаваемую информацию. Для защиты передаваемых данных используется расширение HTTPS (Hyper Text Transfer Protocol Secure), которое “упаковывает” передаваемые данные в криптографический протокол SSL или TLS. Но это совсем другая история)

Структура HTTP запроса

HTTP запрос состоит из трех основных частей: строка запроса (request line), заголовок (message header) и тело сообщения (entity body). Тело сообщения не является обязательным параметром. Между заголовком и телом есть пустая разделительная строка.

Строка запроса

В строке запроса указывается:

  • Метод – название запроса (определяет действие), одно слово из стандартного списка, заглавными буквами;

  • URI определяет путь к запрашиваемому ресурсу;

  • Версия – пара разделённых точкой цифр. Например: 1.0.

Пример HTTP запроса:

Заголовок запроса

Заголовок запроса добавляет некоторую дополнительную информацию к сообщению запроса, которое состоит из пар «имя / значение», по одной паре на строку, а имя и значение разделяются двоеточием.

Обычно в заголовках передается какая-либо мета информация. Например, токен.

Тело запроса

Последней частью запроса является его тело. Оно бывает не у всех запросов: запросы, собирающие (fetching) ресурсы, такие как GET, HEAD, DELETE, или OPTIONS, в нем обычно не нуждаются и тела запроса у них быть не должно (так реализовать метод можно, но это не правильно).

В то же время для методов POST, PUT, PATCH - тело использовать можно и нужно.

Структура ответа HTTP

Структура ответа, в целом, идентична структуре запроса. Также есть строка статуса, заголовок и тело.

Строка статуса (Status line)

Стартовая строка ответа HTTP, называемая строкой статуса, содержит следующую информацию:

  1. Версию протокола, обычно HTTP/1.1.

  2. Код состояния (status code), показывающая, был ли запрос успешным. Примеры: 200, 404 или 302

  3. Пояснение (status text). Краткое текстовое описание кода состояния, помогающее пользователю понять сообщение HTTP..

Пример строки статуса: HTTP/1.1 404 Not Found.

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

Пример ответа:

Заголовок

Заголовки ответов HTTP имеют ту же структуру, что и все остальные заголовки: не зависящая от регистра строка, завершаемая двоеточием (':') и значение, структура которого определяется типом заголовка. Весь заголовок, включая значение, представляет собой одну строку.

Тело

Тело присутствует не у всех ответов. Например, если мы вызываем метод DELETE, чтобы удалить какую-либо сущность, то в ответ нам вернется лишь строка статуса с HTTP-кодом 204.

Как правило тело ответа используется в том случае, когда нам нужно вернуть вызывающей стороне информацию о ресурсе. Например, если мы вызываем метод GET /users/25, то в ответе вернется полная информация о пользователе с идентификатором = 25.

P.S.: По традиции - буду признателен за вопросы про карьеру\профессию\чему угодно связанному со сферой IT - постараюсь ответить на всё.

P.P.S.: Также веду телеграмм-канал, в котором делюсь разным про профессию и про свой путь в ней. Есть и хардовая информация (асинхронные, синхронные интеграции, примеры ТЗ\шаблонов написания микросервисов), так и более софтовая - см. закрепленный дайджест.

Лига программистов

2.1K поста11.9K подписчиков

Правила сообщества

- Будьте взаимовежливы, аргументируйте критику

- Приветствуются любые посты по тематике программирования

- Если ваш пост содержит ссылки на внешние ресурсы - он должен быть самодостаточным. Вариации на тему "далее читайте в моей телеге" будут удаляться из сообщества

1
ЪУЪ
Автор поста оценил этот комментарий

Про анализ требований было в тему. А теперь какие-то подготовительные курсы детсада для архитекторов. Аналитик должен за архитектуру отвечать?

раскрыть ветку (1)
4
Автор поста оценил этот комментарий

Могу ответить коротко - конечно.


Если чуть более полно, то системный аналитик (по крайней мере опытный) обязан отвечать за архитектуру вверенного ему участка системы. В его задачи входят:

1. Проектирование апишек, иногда даже swagger'ов к ним;

2. Описание интеграций между системами. Как минимум это front-to-back, но логично что и back-to-back тоже.


Сейчас даже от джунов СА требуют знания rest, умения проектировать простейшие CRUD сервисы. Ну может джун+, окей.

Но на собеседовании на джуна точно спросят: "а что ты знаешь про интеграции? А про rest?". А если ты еще и про асинхрон знаешь, про MQ - это ж вообще хорошо. А от миддлов это прямо таки ждут.


Так что анализ и написание требований это лишь малая часть того, что делает системный аналитик.

показать ответы
0
ЪУЪ
Автор поста оценил этот комментарий

Тогда нужна глава про разграничение ответственности между аналитиком, архитектором, дизайнером интерфейсов, челами со стороны зказчика, которые отвечают за программный интерфейс взаимодействия, и т.д. и т.п....
Понятно, что в молодой компании и степлер надо свой из дома приносить, но история ведь про то, как делать правильно?

раскрыть ветку (1)
3
Автор поста оценил этот комментарий

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

В одном месте у тебя может быть и дизайнер, и БА, и QA и суппорт - а в другом месте только ты и тебе приходится совмещать все эти роли в себе.


Поэтому даже если я сформулирую нечто подобное, то придет любой чел с конторы, где принято по-другому - и спросит: " а кто вообще сказал, что надо так? Вот я уже десять лет работаю вот так, а ты втираешь какую-то дичь".


На самом деле даже то что я написал выше директивно - в ряде случаев не верно и аналитик просто пишет "ну мук-пук, надо сделать вот чтобы была ручка по которой мы получали объект user". И это буквально всё ТЗ на эндпоинт. Потому что ну вот так =)


Так что..

Как кто-то сказал: "Если бы знали как правильно и стандартизировали это, то мы бы уже вошли в золотую эра человечества и летали бы на другие планет" (с)

0
Автор поста оценил этот комментарий

Да, аналитик данных, это оно)

1С у нас отсутствует, к счастью. Был как консультант sap bw, консультанты sap erp - отдельная и очень узкопрофильная штука))

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Ну да, sap я знаю, забористая штука. Я не с ним, но с соседней axapta работал больше двух лет, после чего как раз в СА ушёл. Давно это было, эх
Похоже, в целом)
2
Автор поста оценил этот комментарий

Пожалуйста не делись больше информацией. Потому вы заебали своим телеграм каналом, у людей не хватает времени читать все это гавно, каналов больше чем знакомых. Спасибо

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
В такое вот страшное время мы живём - переизбытка информации)

Я понимаю, что это пугает, но что уж поделать. Важно соблюдать информационную гигиену. Кстати, об этом я рассказываю в другом своём телеграм канале ... приходите, всем буду рад, всему научу)
Автор поста оценил этот комментарий

Вопрос такой какие it профессии будут востребованы, с маленьким порогом, допустим я буду сейчас изучать вопрос искать информацию. Допустим как с тестированием лет 5 назад.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

На самом деле ничего не поменялось с тех пор. Новых профессий не появилось (особо) и порог вхождения остался таким же.

Т.е. тестирование -> БА -> СА -> разработка в порядке возрастания сложности. И все они востребованы.

Тестировщиков сейчас достаточно много, их много готовят на курсах - плюс в целом изучить профессию легче, но конкурс большой. Самый большой из всех профессий.


Вообще, можно сделать ход конем и войти через поддержку (что не редкость, я сам много лет назад через нее заходил в СА. Но тогда было многократно проще и брали всех, кто хотел). Только желательно очень через вторую линию, потому что через первую там.. нереально.


Ты уже и работаешь, и что-то получаешь и что-то понимать начинаешь. Через год-полтора, параллельно обучаясь можно вертикально вырасти в позиции. Возможно, даже в рамках той же компании переключиться на тестирование\СА\БА\

1
Автор поста оценил этот комментарий

Поддержу @Kaladinn личной историей.

После универа зашел сначала в БА, потом стал консультантом (в моем случае это был БА + не сильно сложный СА) и сейчас уже больше года я СА.
В БА заходил с какими-то поверхностыми и очень общими знаниями, а область в которую зашел практически не знал. Сейчас продолжаю рост уже будучи СА и в какие-то ещё сферы идти не хочу.
Единственное, у меня иная специфика, нежели у ТС. Я СА в DWH, занимаюсь написанием прототипов витрин данных, раскладываю данные в архитектуру хранилища и т.д. Основной необходимый скилл - SQL (сложные запросы, оконные функции, рекусия)

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Да, есть прям отдельная позиция - аналитик данных называется. Это вот скорее всего то, чем ты занимаешься. Тоже востребованная история на рынке)

А по поводу того, что был "консультантом", это не 1с случайно? Или может другие erp/wms системы, обычно аналитиков там так называют)

И спасибо за личную историю.
показать ответы

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества