2012-06-05 30 views
5

क्या किसी को पता है कि कच्चे माल तक पहुंचने पर गिटहब ईटाग कैसे उत्पन्न होता है?गिटहब कच्ची फ़ाइलें - एटाग एल्गोरिदम

जहां तक ​​मैं यह कह सकता हूं कि यह MD5, SHA1 या कोई सामान्य SHA संस्करण नहीं है;

उदाहरण http हेडर:

HTTP/1.1 200 OK 
Server: nginx/1.0.13 
Date: Tue, 05 Jun 2012 19:46:08 GMT 
Content-Type: text/html; charset=utf-8 
Connection: keep-alive 
Status: 200 OK 
ETag: "aa1da178ae0a43e23ce49a6b8f474738" 

ETag लंबाई 32 वर्ण, MD5 सुझाव है, लेकिन इस डाउनलोड की गई फ़ाइल (कर्ल का उपयोग कर डाउनलोड) का MD5 चेकसम मेल नहीं खाता।

मुझे पता है कि ईटीएजी को अपारदर्शी पहचानकर्ता के रूप में माना जाना चाहिए। फिर भी, उत्सुक।

+0

यह थोड़ा विशिष्ट है, है ना? –

+0

@dystroy आह; मुझे Google या github.com पर कोई जानकारी नहीं मिली। यह हम कहते हैं, अंधेरे में एक शॉट। – Ishan

उत्तर

0

मेरा अनुमान होगा कि वे स्टॉक nginx etag मॉड्यूल का उपयोग कर रहे हैं।

https://github.com/mikewest/nginx-static-etags/blob/master/ngx_http_static_etags_module.c

+0

धन्यवाद, लेकिन कोई पासा नहीं। वह मॉड्यूल Nginx अनुरोध, फ़ाइल आकार (हेक्स), और फ़ाइल mtime (हेक्स) से कुछ जानकारी को जोड़कर ईटैग उत्पन्न करता है। सी प्रारूप स्ट्रिंग "% s_% एक्स_% एक्स"। ETag: संयोग से, यहां तक ​​कि के साथ कि इस परियोजना के README में निर्दिष्ट Nginx संस्करण, कुछ टूट गया है .. यह कैसे ETag की तरह लग रहा है/redhat-release HTTP/1.1_newline_User-Agent_22_4FCFB809 यूआरआई पथ + प्रोटोकॉल संस्करण है कि + _ \ n_ + अनुरोध हेडर का हिस्सा + हेक्स फ़ाइल आकार + हेक्स फ़ाइल mtime। – Ishan

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^