Phân tích URL thành từng thành phần: scheme, host, path, query và fragment
Công cụ phân tích URL tách một đường dẫn dài thành bảy thành phần gồm giao thức, tên miền, cổng, đường dẫn, chuỗi truy vấn, phân đoạn và origin, đồng thời liệt kê từng cặp tham số truy vấn ra một bảng riêng. Kết quả cập nhật ngay khi gõ và mỗi giá trị có nút sao chép riêng, tiện khi cần lấy đúng một tham số ra dùng.
Tính năng nổi bật
- Tách URL thành giao thức, tên miền, cổng, đường dẫn, chuỗi truy vấn, phân đoạn và origin
- Liệt kê từng cặp tên và giá trị của tham số truy vấn thành một bảng riêng
- Tự giải mã phần trăm trong giá trị tham số nên đọc được tiếng Việt và ký tự đặc biệt
- Ghi rõ cổng đang là mặc định thay vì để trống gây hiểu nhầm
- Nút sao chép riêng cho từng thành phần và từng giá trị tham số
- Báo ngay khi chuỗi bạn dán không phải một URL hợp lệ
- Phân tích lại tức thì sau mỗi ký tự bạn gõ, không cần bấm nút
- Dùng bộ phân tích URL có sẵn của trình duyệt nên kết quả khớp với cách trình duyệt thật hiểu địa chỉ
Khi nào bạn cần bóc một URL ra từng mảnh
URL trong công việc thật hiếm khi ngắn gọn. Một đường dẫn chiến dịch quảng cáo có thể dài vài trăm ký tự với chục tham số nối nhau, trong đó có cả tham số bị mã hóa hai lần và tham số rác do hệ thống chuyển hướng chèn vào. Khi cần trả lời câu hỏi tham số nào đang mang giá trị gì, hoặc vì sao đường dẫn gọi lên máy chủ lại trả về kết quả sai, đọc bằng mắt là cách chậm và dễ sót nhất, đặc biệt với chuỗi có nhiều dấu và dấu chấm hỏi. Bóc URL ra bảng giúp bạn thấy ngay tham số bị lặp, giá trị bị mã hóa lỗi, phân đoạn bị nhét vào giữa chuỗi truy vấn, hay cổng khác với cổng bạn tưởng. Với người làm quảng cáo, đây còn là cách nhanh nhất để xác minh một liên kết gắn thẻ theo dõi đã đúng trước khi đem đi chạy tiền.
Lợi ích khi sử dụng
- Thấy ngay tham số nào đang có mặt và mang giá trị gì, không phải đếm dấu và trong chuỗi dài
- Lấy nhanh origin để khai báo cấu hình chia sẻ tài nguyên giữa các nguồn
- Xác minh liên kết gắn thẻ theo dõi trước khi đem đi chạy quảng cáo
- Giải mã sẵn phần trăm nên đọc được giá trị tiếng Việt mà không phải mở thêm công cụ khác
- Chạy hoàn toàn trên trình duyệt, đường dẫn nội bộ của bạn không gửi đi đâu
Cách phân tích một đường dẫn
- 1Dán URL đầy đủ vào ô nhập, nhớ giữ cả phần giao thức ở đầu vì thiếu nó công cụ sẽ báo không hợp lệ.
- 2Đọc cột bên trái để xem bảy thành phần cấu trúc, chú ý dòng cổng và dòng phân đoạn vì đây là hai chỗ hay bị bỏ sót.
- 3Đọc cột bên phải để xem danh sách tham số truy vấn đã được tách và giải mã thành cặp tên với giá trị.
- 4Bấm nút sao chép ở dòng bạn cần để lấy đúng giá trị đó, thay vì bôi đen thủ công trong chuỗi dài.
- 5Sửa trực tiếp trong ô nhập rồi xem kết quả đổi theo, cách này tiện khi bạn đang dò xem tham số nào gây lỗi.
Bảy thành phần của một URL và tên gọi chuẩn của chúng
Lấy ví dụ đường dẫn mẫu có sẵn trong công cụ là https://example.com:8080/path/to/page?name=John&age=30#section1. Phần https: là giao thức, luôn kèm dấu hai chấm khi trình duyệt trả về. Phần example.com là tên miền, không bao gồm cổng. Phần 8080 là cổng; nếu URL không ghi cổng thì trình duyệt trả về chuỗi rỗng và công cụ hiển thị là mặc định, tức 443 với https và 80 với http. Phần /path/to/page là đường dẫn, luôn bắt đầu bằng dấu gạch chéo và bằng dấu gạch chéo đơn nếu URL chỉ có tên miền. Phần bắt đầu từ dấu chấm hỏi là chuỗi truy vấn, còn phần bắt đầu từ dấu thăng là phân đoạn. Cuối cùng, origin là ghép của giao thức, tên miền và cổng, tức https://example.com:8080. Ngoài bảy phần này, chuẩn URL còn cho phép đặt tên đăng nhập và mật khẩu ngay trước tên miền, nhưng cách viết đó bị các trình duyệt hiện đại chặn hoặc cảnh báo vì thường được dùng để lừa người đọc nhìn nhầm tên miền.
Origin quyết định trình duyệt cho phép làm gì với dữ liệu
Origin là bộ ba giao thức, tên miền và cổng. Hai đường dẫn cùng origin thì mã JavaScript ở trang này đọc được dữ liệu của trang kia; khác origin thì bị chính sách cùng nguồn gốc chặn lại, trừ khi máy chủ khai báo cho phép. Điều quan trọng là chỉ cần lệch một trong ba yếu tố đã thành khác origin. Trang chạy trên https://example.com và trang chạy trên http://example.com là hai origin khác nhau vì khác giao thức. Trang trên example.com và trang trên api.example.com cũng khác origin dù cùng tên miền gốc. Trang trên cổng 3000 và trang trên cổng 8080 cũng khác nhau. Đây là nguyên nhân phổ biến nhất của lỗi chia sẻ tài nguyên giữa các nguồn mà lập trình viên gặp lúc phát triển: máy chủ khai báo cho phép một origin nhưng ứng dụng lại gọi từ một origin khác chỉ vì lệch cổng hoặc lệch tiền tố www. Dán cả hai đường dẫn vào đây rồi so hai dòng origin là cách nhanh nhất để loại trừ giả thuyết này.
Chuỗi truy vấn, mã hóa phần trăm và bẫy tham số trùng tên
Chuỗi truy vấn là dãy các cặp tên bằng giá trị nối nhau bằng dấu và. Vì bản thân các ký tự dấu và, dấu bằng, dấu chấm hỏi, dấu thăng đều có ý nghĩa cấu trúc, mọi giá trị chứa chúng đều phải mã hóa thành dạng phần trăm kèm mã ký tự. Tiếng Việt có dấu cũng bị mã hóa, mỗi chữ cái có dấu thường chiếm ba nhóm phần trăm vì được lưu bằng nhiều byte. Công cụ này dùng bộ phân tích tham số của trình duyệt nên đã giải mã sẵn, đồng thời hiểu dấu cộng trong chuỗi truy vấn là khoảng trắng theo đúng quy ước biểu mẫu web. Có một giới hạn cần biết: kết quả tham số được gom vào một đối tượng theo tên, nên nếu URL chứa cùng một tên hai lần như tag=a và tag=b thì bảng chỉ hiện giá trị cuối cùng. Chuẩn URL cho phép tham số trùng tên và nhiều máy chủ hiểu chúng thành một danh sách, vì vậy khi bạn nghi ngờ có trùng lặp thì phải nhìn thẳng vào dòng chuỗi truy vấn gốc chứ đừng chỉ đọc bảng đã tách.
Đọc tham số theo dõi trong liên kết quảng cáo
Bộ tham số phổ biến nhất là năm thẻ bắt đầu bằng utm. Thẻ utm_source ghi nguồn như facebook hay google, utm_medium ghi loại kênh như cpc, email hay social, utm_campaign ghi tên chiến dịch, utm_term thường dùng cho từ khóa trả phí, còn utm_content dùng để phân biệt hai mẫu quảng cáo trong cùng chiến dịch. Ba lỗi hay gặp khi kiểm tra bằng công cụ này: tên thẻ viết hoa chữ cái đầu trong khi hệ thống phân tích thường phân biệt chữ hoa chữ thường nên tách thành hai nguồn riêng; giá trị có khoảng trắng bị mã hóa thành ký tự lạ khiến báo cáo hiện hai dòng khác nhau cho cùng một chiến dịch; và các thẻ utm bị đặt sau dấu thăng nên nằm trong phân đoạn chứ không nằm trong chuỗi truy vấn, khiến máy chủ không bao giờ nhận được. Ngoài utm còn có các mã do nền tảng tự gắn khi người dùng bấm vào quảng cáo, chúng thường là chuỗi ngẫu nhiên dài và không mang thông tin bạn tự đặt, nên có thể bỏ qua khi rà soát liên kết.
Khi nào công cụ báo URL không hợp lệ và giới hạn của kết quả
Công cụ dùng đúng bộ phân tích URL của trình duyệt, nên thứ gì trình duyệt không chấp nhận thì ở đây cũng báo lỗi. Ba nguyên nhân thường gặp là thiếu phần giao thức ở đầu, tức dán example.com thay vì https://example.com; chuỗi có khoảng trắng chưa mã hóa ở giữa; và đường dẫn tương đối kiểu /san-pham/abc vốn chỉ có nghĩa khi biết trang gốc. Một điểm dễ gây bất ngờ là tên miền tiếng Việt có dấu sẽ được chuyển sang dạng mã hóa bắt đầu bằng xn dấu gạch ngang kép, đó là hành vi đúng chuẩn chứ không phải lỗi. Về phạm vi, công cụ chỉ đọc cấu trúc chuỗi, nó không truy cập vào đường dẫn nên không cho biết trang có tồn tại hay không, không theo các bước chuyển hướng và không giải mã nội dung của các mã theo dõi. Nó cũng không tách riêng tên đăng nhập, mật khẩu hay tên miền con thành dòng riêng. Cuối cùng, hãy nhớ phân đoạn sau dấu thăng không bao giờ được gửi lên máy chủ, nên đừng đặt tham số quan trọng ở đó.
Câu hỏi thường gặp (FAQ)
Vì sao dán example.com vào thì báo URL không hợp lệ?
Vì thiếu phần giao thức. Bộ phân tích URL của trình duyệt yêu cầu chuỗi phải bắt đầu bằng một scheme hợp lệ như https: hoặc http:, khác với thanh địa chỉ vốn tự thêm giúp bạn. Thêm https:// vào đầu là chạy được. Đường dẫn tương đối kiểu /san-pham/abc cũng bị báo lỗi vì thiếu thông tin về trang gốc.
Origin khác gì với tên miền?
Origin là ghép của ba yếu tố: giao thức, tên miền và cổng, ví dụ https://example.com:8080. Tên miền chỉ là phần giữa. Chỉ cần lệch một trong ba yếu tố là thành hai origin khác nhau, nên http và https của cùng một trang vẫn được xem là hai nguồn riêng biệt trong chính sách bảo mật của trình duyệt.
Vì sao dòng cổng lại hiện là mặc định?
Vì URL của bạn không ghi cổng, và bộ phân tích trả về chuỗi rỗng trong trường hợp đó. Công cụ hiển thị chữ mặc định để bạn không nhầm là dữ liệu bị thiếu. Cổng mặc định là 443 với giao thức https và 80 với http. Nếu bạn viết rõ https://example.com:443 thì trình duyệt cũng lược bỏ vì đó đúng là cổng mặc định.
Tham số trùng tên như tag=a&tag=b thì hiện thế nào?
Bảng tham số chỉ hiện giá trị cuối cùng, ở đây là b, vì kết quả được gom theo tên vào một đối tượng. Chuẩn URL cho phép trùng tên và nhiều máy chủ hiểu chúng thành danh sách nhiều giá trị. Khi nghi ngờ có trùng lặp, hãy nhìn thẳng vào dòng chuỗi truy vấn gốc thay vì chỉ đọc bảng đã tách.
Vì sao giá trị tiếng Việt trong URL biến thành một dãy ký tự lạ?
Đó là mã hóa phần trăm. Mọi ký tự ngoài bộ chữ cái Latin cơ bản đều được chuyển thành dạng phần trăm kèm mã, và một chữ cái tiếng Việt có dấu thường chiếm ba nhóm vì được lưu bằng nhiều byte. Công cụ đã giải mã sẵn ở bảng tham số nên bạn đọc lại được chữ gốc, còn dòng chuỗi truy vấn vẫn giữ nguyên dạng đã mã hóa.
Dấu cộng trong URL nghĩa là gì?
Trong chuỗi truy vấn, dấu cộng được hiểu là khoảng trắng theo quy ước gửi biểu mẫu web, nên name=Nguyen+Van+A cho ra giá trị có ba từ cách nhau. Nếu bạn thật sự muốn ký tự cộng làm giá trị thì phải mã hóa thành phần trăm hai B. Lưu ý quy ước này chỉ áp dụng cho chuỗi truy vấn, không áp dụng cho phần đường dẫn.
Phần sau dấu thăng có được gửi lên máy chủ không?
Không. Phân đoạn sau dấu thăng chỉ tồn tại phía trình duyệt, dùng để cuộn tới một mục trong trang hoặc để ứng dụng một trang tự định tuyến. Máy chủ không bao giờ nhìn thấy nó. Vì vậy đặt thẻ theo dõi hay tham số cần máy chủ xử lý sau dấu thăng là lỗi khiến dữ liệu biến mất mà không báo gì.
Vì sao tên miền tiếng Việt bị đổi thành chuỗi bắt đầu bằng xn?
Đó là dạng mã hóa dùng để biểu diễn tên miền có ký tự ngoài bảng chữ cái Latin cơ bản, vì hệ thống tên miền chỉ chấp nhận một tập ký tự hạn chế. Bộ phân tích của trình duyệt tự chuyển đổi, và đây là hành vi đúng chuẩn chứ không phải lỗi. Khi cấu hình máy chủ hay chứng chỉ, bạn thường phải dùng chính chuỗi đã mã hóa này.
Công cụ có kiểm tra được đường dẫn còn sống hay không?
Không. Công cụ chỉ đọc cấu trúc của chuỗi ký tự, không gửi yêu cầu nào tới đường dẫn đó. Nó không cho biết trang tồn tại hay đã bị xóa, không theo các bước chuyển hướng và không đọc được mã trạng thái phản hồi. Muốn kiểm tra những thứ đó bạn cần một công cụ kiểm tra phản hồi hoặc mở trực tiếp đường dẫn.
Bộ tham số utm gồm những thẻ nào?
Năm thẻ thông dụng là utm_source ghi nguồn, utm_medium ghi loại kênh, utm_campaign ghi tên chiến dịch, utm_term thường dùng cho từ khóa trả phí và utm_content để phân biệt các mẫu quảng cáo. Tên thẻ nên viết thường hoàn toàn và giá trị nên dùng dấu gạch ngang thay khoảng trắng, vì hệ thống báo cáo thường phân biệt chữ hoa chữ thường.
Dán URL có chứa mã đăng nhập vào đây có an toàn không?
Công cụ không gửi dữ liệu đi đâu vì toàn bộ xử lý chạy trong trình duyệt của bạn. Tuy nhiên chuỗi vẫn nằm trong bộ nhớ trang và có thể lọt vào ảnh chụp màn hình khi bạn chia sẻ kết quả. Với đường dẫn chứa mã phiên hay khóa truy cập, nên thay giá trị nhạy cảm bằng chuỗi giả trước khi đưa cho người khác xem.
Vì sao đường dẫn hiện ra vẫn còn ký tự mã hóa?
Vì bộ phân tích giữ nguyên phần đường dẫn ở dạng đã mã hóa, chỉ giải mã ở bảng tham số truy vấn. Điều này là cố ý, bởi trong đường dẫn thì dấu gạch chéo đã mã hóa và dấu gạch chéo thật mang ý nghĩa khác nhau, giải mã bừa sẽ làm sai cấu trúc thư mục của địa chỉ.
Từ khóa liên quan
- phân tích url online
- tách tham số url
- url parser
- đọc query string
- query parameter là gì
- origin là gì
- lỗi cors khác origin
- mã hóa phần trăm url
- giải mã url tiếng việt
- utm là gì
- kiểm tra link utm
- utm_source utm_medium utm_campaign
- fragment sau dấu thăng
- cổng mặc định http https
- punycode tên miền tiếng việt
- cấu trúc url gồm những phần nào
- tách domain khỏi url
- copy tham số từ url
- debug url api
- công cụ phân tích đường dẫn miễn phí
