2010-12-31 45 views
66

Tôi tự hỏi cách Trình rút gọn URL hoạt động như cách chúng trích xuất văn bản từ thanh địa chỉ và ánh xạ nó để sửa URL, sau đó chuyển hướng nó. Họ sử dụng ngôn ngữ lập trình nào? Làm cách nào để họ duy trì lịch sử ánh xạ? Làm cách nào để đảm bảo tính duy nhất của url rút gọn? Làm thế nào một người đàn ông có thể unmap nó mà không cần truy cập vào URL?Trình rút gọn URL hoạt động như thế nào?

+51

chỉ 3 phiếu bầu? Thôi nào, anh ấy muốn học một cái gì đó, đóng nó nhanh hơn !!! – IAdapter

+19

Đây là câu hỏi chính xác mà tôi có và tôi rất thất vọng khi thấy nó đã đóng. Nó không mơ hồ hoặc không đầy đủ - anh ấy rất cụ thể trong những gì anh ấy hỏi. – thumbtackthief

+2

@ bmargulies Tôi nghĩ rằng câu hỏi không nên được đóng lại, điều này rất hữu ích và thậm chí cả câu trả lời, cũng nghĩ rằng 43 upvotes và bạn quyết định nó được đóng lại..why ?? –

Trả lời

30

Wiki Is Your Friend

Về cơ bản, một trang web với một tên ngắn hơn được sử dụng như một giữ chỗ, chẳng hạn như bit.ly.

Sau đó, bit.ly tạo khóa để người dùng cung cấp, được tạo ngẫu nhiên để không lặp lại. Với 35 tùy chọn ký tự và 8 hoặc nhiều giá trị, hãy thực hiện phép tính. Đó là rất nhiều phím có thể. Nếu url bằng một khóa hiện có trước đó, tôi nhớ đọc ở đâu đó rằng chúng cũng sử dụng lại khóa.

Họ không thực sự sử dụng một ngôn ngữ lập trình cụ thể, họ chỉ sử dụng chuyển hướng URL đơn giản, có thể được thực hiện với HTML tôi tin.

+0

oh thật tuyệt. Cảm ơn bạn rất nhiều – prap19

+16

Chuyển hướng KHÔNG được thực hiện bằng HTML, nó được thực hiện với Tiêu đề HTTP. (Mã trạng thái 301 hoặc 302, tùy thuộc). – Yahel

+0

Ah được rồi, điều đó sẽ có ý nghĩa hơn. Cảm ơn bạn đã làm rõ. –

18

Quá trình này khá đơn giản: Có một tập lệnh yêu cầu URL, tạo chuỗi ngẫu nhiên (và xác minh rằng chuỗi này chưa được sử dụng) và đặt hai vào một loại cơ sở dữ liệu nào đó. Khi bạn yêu cầu url, một tập lệnh khác sẽ tìm trong cơ sở dữ liệu cho chuỗi ngẫu nhiên và nếu tìm thấy nó chuyển hướng bạn đến trang web.

Đây là khóa học phức tạp hơn trong sản xuất do các tính năng cần thiết như phòng chống lạm dụng, lọc URL, ngăn chặn spam, xác minh URL, v.v.


Ngôn ngữ không liên quan, chủ yếu là bất kỳ ai sẽ làm.

+7

"và xác minh rằng chuỗi này chưa được sử dụng" .. LÀM THẾ NÀO? Đây là câu hỏi lớn nhất – Stewie

+3

@Stewie: CHỌN * TỪ ánh xạ WHERE key = stringToCheck và kiểm tra xem có hàng nào được trả về không? Hoặc bất kỳ điều tương tự nào trong ngôn ngữ cơ sở dữ liệu bạn chọn. Có vẻ như phần đơn giản nhất của toàn bộ vấn đề phải trung thực. –

+0

@Stewie Hoặc họ có thể sử dụng __HashMap__ để ánh xạ '' – roottraveller

21

Người rút gọn URL chỉ tạo mã ngắn, ánh xạ URL mục tiêu tới mã ngắn và cung cấp URL mới. Việc truy cập vào URL sẽ thực hiện tra cứu cơ sở dữ liệu bằng shortcode làm khóa và chuyển hướng bạn đến URL mục tiêu. Không có liên kết thuật toán giữa URL rút gọn và URL đích, do đó bạn không thể "hủy định dạng" URL đó mà không phải trải qua các hệ thống của trình rút gọn URL.

Bạn có thể làm điều đó với bất kỳ ngôn ngữ lập trình và kho dữ liệu nào. Việc tạo mã là tầm thường để đảm bảo tính duy nhất; nếu bạn có một phím số nguyên tăng dần, bạn chỉ có thể mã hóa khóa là base62 và phục vụ điều đó. Vì các mã tăng dần về bản chất, bạn sẽ không bao giờ có xung đột.

+0

hey cảm ơn. Đó là súc tích và dễ hiểu. – prap19

Các vấn đề liên quan