> обычно в базе хранится строка регистронезависимо
Это где такое «обычно»?
Ну и вообще, в чём задача этих коротких ссылок? Например если люди должны их перепечатывать руками с рекламы в 5 метрах или (не дай бог) озвучивать по телефону, то лучше использовать только маленькие буквы, да ещё и выкинуть слишком похожие.
Собственно тут классическая ошибка, что человек считает 1000rps как именно 1000 и именно в секунду, а на самом деле nginx оперирует интервалами и токенами. так что 1000rps нужно читать как «не чаще 1 запроса в 0.001 сек».
Что бы было понятнее разница в понимании, можно сказать что для человека «1 запрос в секунду» и «60 запросов в минуту» воспринимаются по разному, а для nginx это одно и то же. Т. к. человек (без специальных знаний) вторую запись воспринимает как «я могу послать все 60 запросов на 59 секунде минуты», а через три секунды послать ещё 60 запросов.
Насколько я помню в TCP прежде чем пойдут данные клиент и сервер должны обменяться пакетами SYN, SYN-ACK, ACK. Так что так просто подделать запрос не выйдет, потому что SYN-ACK уйдёт на поддельный адрес и соединение не установится.
Это где такое «обычно»?
Ну и вообще, в чём задача этих коротких ссылок? Например если люди должны их перепечатывать руками с рекламы в 5 метрах или (не дай бог) озвучивать по телефону, то лучше использовать только маленькие буквы, да ещё и выкинуть слишком похожие.