Иерархический и плоский URL - PullRequest
3 голосов
/ 04 января 2012

У меня есть структура ресурсов, такая как рейс> место> бронирование, поэтому резервирование принадлежит определенному месту, которое принадлежит определенному рейсу:

http://example.com/jdf_3prGPS4/1/jMBDy46PbNc
                   ----------- - -----------
                        |      |       |
                        |      |       |
                     flight  seat  reservation

Поскольку клиент получает этот (несколько некрасивый) URL-адрес для последующей отмены, я считаю, что опустить структуру ресурса и сократить ссылку на бронирование:

http://example.com/reservation/jMBDy46PbNc                     

Видите ли вы какие-либо причины (относящиеся к пользователю), чтобы не сокращать этот URL?

Ответы [ 2 ]

3 голосов
/ 04 января 2012

Вопрос о том, предлагаете ли вы более длинный или короткий URL-адрес, не имеет большого значения, но вопрос о том, предлагаете ли вы только один из них или оба. Если оба URL возвращают одно и то же содержимое, в ваших кешах будет дублироваться информация (серверная, промежуточная или клиентская), и они могут быть не синхронизированы между двумя ресурсами, особенно если они кэшируются на разных время жизни. В идеале вы должны предложить один или другой. Если вы действительно хотите предложить и то, и другое, вам нужно перенаправить один к другому, а не дублировать его.

2 голосов
/ 04 января 2012

Конечный пользователь не очень заботится о структуре URL. Фактически, учитывая то, как они выглядят там, они почти наверняка даже не хотят смотреть на них и вместо этого просто щелкают. Это действительно оставляет только функциональные соображения.

Если URL ведут к одному и тому же ресурсу и этот ресурс ведет себя одинаково с разными URL, то почти по определению не имеет значения, какой из них вы используете.

Полагаю, единственным реальным фактором может быть наличие каких-либо последствий для безопасности. Смогу ли я угадать идентификаторы бронирования? Получает ли это меня где-нибудь (то есть, мне все еще нужно войти или что-то еще)? Если есть место и рейс, они должны были бы иметь возможность угадать правильную комбинацию всех трех, что, очевидно, намного сложнее, чем просто грубое принуждение ID бронирования.

Если это последнее не беспокоит, то я не вижу смысла когда-либо использовать более длинный URL ...

...