server_name
TLS Extension Code: 0
Extension Details
server_name00x0000What is server_name?
Server Name Indication (SNI) extension allows the client to indicate which hostname it is attempting to connect to at the start of the TLS handshake. This is crucial for virtual hosting, where multiple HTTPS sites share the same IP address. Without SNI, the server cannot determine which certificate to present. SNI is defined in RFC 6066 and is supported by all modern browsers. However, SNI is transmitted in cleartext, which can reveal browsing history to network observers. TLS 1.3 introduces Encrypted SNI (ESNI) to address this privacy concern.
Role in JA3 Fingerprinting
The server_name extension is part of the TLS Client Hello packet that JA3 analyzes to create a unique fingerprint of your browser or HTTP client.
JA3 Construction: JA3 concatenates TLS parameters including extensions in a specific format:
TLS_VERSION,CIPHERS,EXTENSIONS,CURVES,POINT_FORMATS
Different browsers and HTTP clients support different sets of TLS extensions, making this a key differentiator in fingerprinting. The presence, absence, or order of extensions like server_name can reveal:
- Browser type and version (Chrome, Firefox, Safari, Edge)
- Operating system (Windows, macOS, Linux, Android, iOS)
- HTTP library (curl, Python requests, Go http.Client, Node.js)
- Bot detection - automated tools often have distinctive extension sets
Test Your TLS Configuration
See if your browser or HTTP client includes the server_name extension in its TLS handshake:
The JA3 tool will show all TLS extensions your client advertises, including server_name.
Browser & Client Support
Modern Browser Support:
- Chrome/Edge: Full support for server_name
- Firefox: Full support for server_name
- Safari: Full support for server_name
HTTP Client Libraries:
- curl: Support varies by OpenSSL/LibreSSL version
- Python requests: Limited TLS extension control
- curl_cffi: Can mimic browser TLS configurations
- Scrapfly API: Automatically matches real browser TLS fingerprints
Related TLS Resources
TLS Extensions
Testing Tools
Technical References
- RFC Specification: RFC 6066 - TLS Extensions
- IANA Registry: TLS ExtensionType Values
- JA3 Project: JA3 - TLS Client Fingerprinting