હાયપરટેક્સ્ટ ટ્રાન્સફર પ્રોટોકોલ(HTTP) વિતરિત, સહયોગી, હાયપરમેડિયા માહિતી સિસ્ટમ્સ માટે એક એપ્લિકેશન પ્રોટોકોલ છે. HTTP એ વર્લ્ડ વાઇડ વેબ માટે ડેટા કમ્યુનિકેશનનો પાયો છે, જ્યાં હાઇપરટેક્સ્ટ દસ્તાવેજોમાં અન્ય સંસાધનોને હાઇપરલિંક્સ સમાયેલ્ હોય છે જે વપરાશકર્તા સરળતાથી ઉપયોગ્ કરી શકે છે, ઉદાહરણ તરીકે માઉસ ક્લિક દ્વારા અથવા વેબ બ્રાઉઝરમાં સ્ક્રીનને ટેપ કરીને. HTTPને હાઇપરટેક્સ્ટ અને વર્લ્ડ વાઇડ વેબને સરળ બનાવવા વિકસાવવામાં આવ્યું હતું.

એચટીએમએલનો વિકાસ 1989 માં CERN ખાતે ટિમ બર્નર્સ-લી દ્વારા કરવામાં આવ્યો હતો. એચટીટીપી ધોરણોના વિકાસને ઈન્ટરનેટ એન્જીનિયરિંગ ટાસ્ક ફોર્સ (IETF) અને વર્લ્ડ વાઇડ વેબ કન્સોર્ટિયમ (W3C) દ્વારા સમન્વયિત કરવામાં આવ્યું હતું, જે અરજીઓની શ્રેણીઓના પ્રકાશનમાં પરિણમી હતી. ટિપ્પણીઓ (RFC). HTTP/1.1 ની પ્રથમ વ્યાખ્યા, સામાન્ય વપરાશમાં એચટીટીપીનું સંસ્કરણ RFC2068 જે 1997 માં થયું હતું, જો કે 1999 માં આરએફસી 2616 દ્વારા આને અપ્રચલિત કરવામાં આવ્યું હતું અને પછી ફરીથી 2014 માં RFC 7230 ના RFC 7230 પરિવાર દ્વારા તેને અપ્રચલિત કરવામાં આવ્યું હતું.

પાછળનું સંસ્કરણ, ઉત્તરાધિકારી HTTP/2, 2015 માં પ્રમાણિત થયું હતું (અને HTTP/3 એ તેના સૂચિત અનુગામી (ઇન્ટરનેટ ડ્રાફ્ટ) છે, જે HTTP/2 પર બનાવે છે) અને હવે મુખ્ય વેબ સર્વર્સ દ્વારા સમર્થિત છે અને ALPN એક્સટેંશનનો ઉપયોગ કરીને TLS પર બ્રાઉઝર્સ જ્યાં TLS 1.2 અથવા નવું TLS આવશ્યક છે.

તકનિકી ઝાંખી 

ક્લાયંટ-સર્વર કમ્પ્યુટિંગ મોડલમાં HTTP વિનંતી-પ્રતિસાદ પ્રોટોકોલ તરીકે કાર્ય કરે છે. એક વેબ બ્રાઉઝર, ઉદાહરણ તરીકે, "ક્લાયંટ" અને કમ્પ્યુટર પર ચાલતી એપ્લિકેશન હોઈ શકે છે  હોસ્ટિંગ એક વેબસાઇટ એ "સર્વર" હોઈ શકે છે . ક્લાઇન્ટ સર્વર પર HTTP  વિનંતી  સંદેશ રજુ કરે છે. સર્વર, જે HTML ફાઇલો અને અન્ય સામગ્રી જેવા "સ્રોતો" પૂરા પાડે છે અથવા ક્લાયન્ટ વતી અન્ય કાર્યો કરે છે, તે ક્લાયન્ટને  પ્રતિસાદ  સંદેશ આપે છે. આ પ્રતિસાદમાં વિનંતી વિશેની સમાપ્તિ સ્થિતિની માહિતી શામેલ છે અને તેમાં તેના સંદેશા બોડીમાં વિનંતી કરેલી સામગ્રી પણ શામેલ હોઈ શકે છે.

વેબ બ્રાઉઝર એ વપરાશકર્તા એજન્ટ (UA) નું ઉદાહરણ છે. અન્ય પ્રકારના વપરાશકર્તા એજન્ટમાં શોધ પ્રદાતાઓ (વેબ ક્રોલર્સ), વૉઇસ બ્રાઉઝર્સ, મોબાઇલ એપ્લિકેશન્સ અને અન્ય સૉફ્ટવેર દ્વારા ઉપયોગમાં લેવાયેલ અનુક્રમિક સૉફ્ટવેરનો સમાવેશ થાય છે જે વેબ સામગ્રીનો ઉપયોગ કરે છે અથવા પ્રદર્શિત કરે છે.ક્લાયંટ અને સર્વર્સ વચ્ચેના સંચારને સુધારવામાં અથવા સક્ષમ કરવા માટે મધ્યવર્તી નેટવર્ક ઘટકોને મંજૂરી આપવા માટે HTTP બનાવવામાં આવ્યું છે.ઉચ્ચ-ટ્રાફિક વેબસાઇટ્સને વારંવાર વેબ કૅશ સર્વર્સ તરફથી લાભ થાય છે જે પ્રતિભાવ સમય વધારવા માટે અપસ્ટ્રીમ સર્વર્સ વતી સામગ્રી પહોંચાડે છે.વેબ બ્રાઉઝર્સ કેશ નેટવર્ક ટ્રાફિક ઘટાડવા માટે અગાઉ વાપરેલા સંસાધનો જ્યારે શક્ય હોય ત્યારે, તેમને ફરીથી ઉપયોગ કરે છે. ખાનગી નેટવર્ક સીમાઓ પર HTTP પ્રોક્સી સર્વર્સ બાહ્ય સર્વર્સ સાથેના સંદેશાઓને ફરીથી લોડ કરીને વૈશ્વિક ધોરણે રાઉટેબલ સરનામાં વિના ક્લાઇન્ટ્સ માટે સંચારની સુવિધા કરી શકે છે.

HTTP એ  ઈન્ટરનેટ પ્રોટોકોલ સ્યુટના માળખામાં રચાયેલ એપ્લિકેશન લેયર પ્રોટોકોલ છે. તેની વ્યાખ્યા અંતર્ગત અને ભરોસાપાત્ર પરિવહન સ્તર પ્રોટોકોલની ધારણા કરે છે, અને  ટ્રાન્સમિશન કંટ્રોલ પ્રોટોકોલ (TCP) નો સામાન્ય રીતે ઉપયોગ થાય છે. જો કે, યુઝર ડેટાગ્રામ પ્રોટોકોલ (UDP) જેવા અવિશ્વસનીય પ્રોટોકોલ્સનો ઉપયોગ કરવા માટે HTTP ને અનુકૂલિત કરી શકાય છે, ઉદાહરણ તરીકે HTTPU અને સિમ્પલ સર્વિસ ડિસ્કવરી પ્રોટોકોલ (SSDP).

ઇતિહાસ 

હાયપરટેક્સ્ટ શબ્દ 1965 માં ઝેનાડુ પ્રોજેક્ટમાં ટેડ નેલ્સન દ્વારા બનાવવામાં આવ્યો હતો, જે બદલામાં વેનવેવર બુશના 1930 ના દાયકામાં માઈક્રોફિલ્મ-આધારિત માહિતી પુનઃપ્રાપ્તિ અને વ્યવસ્થાપન "મેમેક્સ" પ્રણાલી દ્વારા તેના 1945 ના નિબંધ "As We May Think" માં વર્ણવેલ સિસ્ટમ દ્વારા પ્રેરિત કરવામાં આવ્યું હતું. ટિમ બર્નર્સ-લી અને સીઇઆરએનની તેમની ટીમને એચટીએમએલ અને વેબ સર્વર અને ટેક્સ્ટ-આધારિત વેબ બ્રાઉઝર માટે સંકળાયેલ તકનીક સાથે મૂળ એચટીટીપી શોધવાની શ્રેય આપવામાં આવે છે. બર્નર્સ-લીએ સૌપ્રથમ 1989 માં "WorldWideWeb" પ્રોજેક્ટનો પ્રસ્તાવ મૂક્યો હતો - હવે તે વર્લ્ડ વાઇડ વેબ તરીકે ઓળખાય છે. પ્રોટોકોલના પ્રથમ સંસ્કરણમાં ફક્ત એક જ પદ્ધતિ છે, જેમ કે GET, જે સર્વરથી પૃષ્ઠની વિનંતી કરશે.  સર્વર તરફથી પ્રતિભાવ હંમેશા HTML પૃષ્ઠ હતો.

HTTP નું પ્રથમ દસ્તાવેજી સંસ્કરણ HTTP V0.9 (1991) હતું. ડેવ રેગેટ્ટએ 1995 માં HTTP વર્કિંગ ગ્રૂપ (HTTP ડબલ્યુજી) નું નેતૃત્વ કર્યું હતું અને વિસ્તૃત કામગીરી, વિસ્તૃત વાટાઘાટ, સમૃદ્ધ મેટા-માહિતી સાથે પ્રોટોકોલને વિસ્તૃત કરવા માગતા હતા, જે સુરક્ષા પ્રોટોકોલ સાથે જોડાયેલું હતું જે વધારાના પદ્ધતિઓ અને હેડર ક્ષેત્રો ઉમેરીને વધુ કાર્યક્ષમ બન્યું હતું. RFC 1945 એ સત્તાવાર રીતે રજૂઆત કરી અને 1996 માં HTTP V1.0 ને ઓળખી કાઢ્યું.

HTTP સત્ર 
HTTP સત્ર નેટવર્ક વિનંતી-પ્રતિસાદ વ્યવહારોનું અનુક્રમ છે. HTTP ક્લાયંટ સર્વર પર ચોક્કસ TCP અને UDP પોર્ટને  ટ્રાન્સમિશન કંટ્રોલ પ્રોટોકોલ (TCP) જોડાણ દ્વારા વિનંતી કરે છે (સામાન્ય રીતે પોર્ટ 80, ક્યારેક પોર્ટ 8080. તે પોર્ટ પર સાંભળી રહ્યું HTTP સર્વર ક્લાઇન્ટના વિનંતી સંદેશ માટે રાહ જુએ છે. વિનંતિ પ્રાપ્ત કર્યા પછી, સર્વર "HTTP / 1.1 200 OK", અને તેના પોતાના સંદેશની સ્થિતિ રેખા પાછું મોકલે છે. આ સંદેશનો મુખ્ય ભાગ વિનંતી કરેલો સ્રોત છે, જો કે ભૂલ મેસેજ અથવા અન્ય માહિતી પણ પરત આવી શકે છે.

સતત જોડાણો 
HTTP / 0.9 અને 1.0 માં, એક વિનંતી / પ્રતિસાદ જોડી પછી કનેક્શન બંધ થાય છે. HTTP / 1.1 માં એક જીવંત-મિકેનિઝમ રજૂ કરવામાં આવ્યું હતું, જ્યાં એકથી વધુ વિનંતી માટે કનેક્શન ફરીથી ઉપયોગમાં લેવાય છે. આવા "'સતત જોડાણો' 'વિનંતીને ઘટાડે છે કારણ કે ગ્રાહકને પ્રથમ વિનંતિ મોકલ્યા પછી TCP 3-વે હેન્ડશેક કનેક્શન ફરીથી વાટાઘાટો કરવાની જરૂર નથી. બીજી હકારાત્મક આડઅસર એ છે કે, સામાન્ય રીતે, TCP ની (Slow-starat- મિકેનિઝમ) ના કારણે સમય સાથે કનેક્શન ઝડપી બને છે.
પ્રોટોકોલના સંસ્કરણ 1.1 એ HTTP/1.0 માં બેન્ડવિડ્થ ઑપ્ટિમાઇઝેશન સુધારાઓ પણ કર્યા છે. ઉદાહરણ તરીકે, HTTP / 1.1 એ [buunked transfer encoding] રજૂ કર્યું છે જે સતત કનેક્શન્સ પરની સામગ્રી buffered ને બદલે સ્ટ્રીમ કરવા માટે પરવાનગી આપે છે. HTTP પાઇપલાઇનિંગ વધુ અંતરાલ ઘટાડે છે, જે ગ્રાહકોને દરેક પ્રતિસાદની રાહ જોતા પહેલા બહુવિધ વિનંતીઓ મોકલવા દે છે. પ્રોટોકોલનો બીજો ઉમેરો બાઇટ સર્વિસ હતો, જ્યાં સર્વર ક્લાયન્ટ દ્વારા સ્પષ્ટપણે વિનંતી કરાયેલા સ્રોતના ફક્ત ભાગ જ પ્રસાર કરે છે.

HTTP સત્ર સ્થિતિ 
HTTP એ સ્ટેટલેસ પ્રોટોકોલ છે. સ્ટેટિલેસ પ્રોટોકોલને HTTP સર્વર ને બહુવિધ વિનંતીઓની અવધિ માટે માહિતી અથવા દરેક વપરાશકર્તા વિશે સ્થિતિ જાળવવાની જરૂર નથી. જો કે, વેબ એપ્લિકેશન કેટલાક રાજ્યો અથવા સત્ર ​​(કમ્પ્યુટર વિજ્ઞાન) (ઉદાહરણ તરીકે HTTP કૂકી અથવા છુપાયેલા ચલ (કમ્પ્યુટર વિજ્ઞાન) નો ઉપયોગ કરીને અમલીકરણ કરે છે.

HTTP પ્રમાણીકરણ 
HTTP મૂળભૂત ઍક્સેસ પ્રમાણીકરણ અને ડાયજેસ્ટ ઍક્સેસ પ્રમાણીકરણ જેવી એકીકૃત પ્રમાણીકરણ યોજનાઓ પ્રદાન કરે છે જે એક પડકાર-પ્રતિસાદ મિકેનિઝમ દ્વારા કાર્ય કરે છે, જેના દ્વારા સર્વર વિનંતી કરે છે અને વિનંતિ કરેલ સામગ્રીની સેવા આપતા પહેલા પડકારને ઉકેલી શકે છે.

HTTP ઍક્સેસ નિયંત્રણ અને સત્તાધિકરણ માટે એક સામાન્ય માળખું પૂરું પાડે છે, ચેલેન્જ-રિસ્પોન્સ પ્રમાણીકરણ સ્કીમ્સના એક્સ્ટેન્સિબલ સેટ દ્વારા, સર્વર દ્વારા ગ્રાહક વિનંતીને પડકારવા અને ક્લાયંટ દ્વારા પ્રમાણીકરણ માહિતી પ્રદાન કરવા માટે ઉપયોગમાં લેવાય છે.

સત્તાધિકરણ ક્ષેત્ર 
HTTP પ્રમાણીકરણ સ્પષ્ટીકરણ આપેલ રૂટ URI માટે સામાન્ય રીતે વધુ વિભાજક સ્રોતો માટે અમલીકરણ-વિશિષ્ટ રચના પણ આપે છે. વાસ્તવિક મૂલ્ય શબ્દ, જો હાજર હોય, તો પડકારની સુરક્ષા અવકાશ ઘટક બનાવવા માટે કેનોનિકલ મૂળ URI સાથે જોડાય છે. આ અસરથી સર્વર એક મૂળ URI હેઠળ અલગ સત્તાધિકરણ સ્કોપોને વ્યાખ્યાયિત કરી શકે છે.

મેસેજ ફોર્મેટ 
ક્લાયંટ અને સર્વર સાદા-ટેક્સ્ટ (ASCII) સંદેશા મોકલીને સંચાર કરે છે. ક્લાયંટ  'વિનંતી' 'સર્વરને મોકલે છે અને સર્વર' 'પ્રતિસાદો' 'મોકલે છે.

 વિનંતી સંદેશ 
વિનંતી સંદેશ નીચે મુજબ છે:

 વિનંતિ રેખા (દા.ત.,  GET /images/logo.png HTTP / 1.1 '', જે સર્વરમાંથી <tt> /images/logo.png </ tt> નામના સંસાધનની વિનંતી કરે છે.)
 HTTP વિનંતી હેડર ફીલ્ડ  (દા.ત., "Accept-Language: en' ').
 એક ખાલી લીટી
 વૈકલ્પિક HTTP મેસેજ બોડી

વિનંતી લાઇન અને અન્ય હેડર ફીલ્ડ્સનો અંત <CR><LF> પછી જ સમાપ્ત થવો જોઈએ. ખાલી લીટીમાં ફક્ત <CR><LF> અને બીજું  શામેલ હોવું આવશ્યક છે. HTTP / 1.1 પ્રોટોકોલમાં, "હોસ્ટ" સિવાયના બધા હેડર ક્ષેત્રો વૈકલ્પિક છે.

કમ્પ્યુટર વિજ્ઞાન
કમ્પ્યુટર નેટવર્ક
કોમ્પ્યુટર