Just nu i M3-nätverket
Gå till innehåll

<meta> Nybörjarfrågor


jbo

Rekommendera Poster

Jag är nybörjare i HTML (och kan absolut ingenting om programmering) och försöker via div. utkommen litteratur i ämnet sätta mig in i det samma.

Böckerna har många fördelar och ger svar på en hel del frågor. Inte alltför sällan skapar de nya frågor - eller utelämnar sådant man velat veta.

Just för stunden skulle jag vilja få ett ordentligt begrepp om <meta> och dess attribut - där böckerna i mitt tycke lämnat mycket i övrigt att önska.

Så mycket om taggen har jag förstått att den är just metainformation, att den kan tolkas av webbserverprogram och skickas före resten av informationen som en del av HTTP-informationen, vilket gett mig en svag aning om vilka fördelar det finns med detta (utan att egentligen veta mer än ett uns om HTTP). Men detta är ,än så länge, bara teoretiska begrepp. Jag vill ju kunna använda mig av taggen i praktiken. Och det är här jag saknar stöd i mina böcker.

 

Där står att <meta> kan ha fyra attribut (här uppstår min första undran: jag tycker mig ha stött på fler än så - bl.a. i det här forumet - men jag kanske har missförstått något?).

 

Dessa fyra attribut räknas upp och förklaras så här:

http-equiv - binder värdet till ett huvudfält i HTTP

content - Ger fältets innehåll.

name - Ger ett namn till fältet och dess innehåll

scheme - Berättar hur fältets innehåll är angivet.

 

Denna information är säkert glasklar för de flesta på detta forum, men för den som likt mig inte är familjär med flera av begreppen här blir det ganska dimmigt. Låt mig börja överst:

1. http-equiv

1.1. Vad är detta en förkortning av (jag antar att det är equivalent - men det gör mig inte mycket klokare då jag saknar begrepp om sammanhanget begreppet ingår i)? Hur kan man på ett enkelt sätt beskriva dess innebörd?

1.2. Vad menas med ett huvudfält? Vad är ett fält överhuvudtaget i detta sammanhang?

1.3. Vad är innebörden av att värdet binds till huvudfältet i HTTP?

1.3. När, och i vilka sammanhang, skall man använda http-equiv?

 

Jag har frågor om alla de andra attributen med, men det är väl enklast att ta en term i taget (och möjligheten att svaren på denna löser en del av knutarna på de övriga finns ju också....:))

 

Om någon har tid och möjlighet att ge en mer övergripande beskrivning kring <meta> och dess attribut är jag naturligtivs mycket intresserad av en sådan - så länge den håller sig på en nivå som en nybörjare kan förstå...

 

[inlägget ändrat 2008-11-15 01:35:58 av jibo-san]

[inlägget ändrat 2008-11-15 01:39:57 av jibo-san]

Länk till kommentar
Dela på andra webbplatser

I korthet är meta förkortning för metainformation, dvs sånt som liksom utgör karakteristika för sidan men som inte utgör sidan.

Du kan läsa en hel del om det t.ex här: http://www.webdeveloper.com/html/html_metatags.html

 

Ofta handlar det om att sidan behöver ändra den information som besökarens webbläsare fick från webbservern. Det kan handla om t.ex vilken teckenuppsättning som ska användas för att tolka sidan eller för att helt enkelt tala om hur länge sidan är "giltig" för att webbläsaren ska veta hur länge den får spara sidan i sin cache.

 

Det kan också vara andra saker, det kanske vanligaste är nyckelord för att hjälpa de få sökmotorer som bryr sig om sånt (vet inte om det finns någon sådan kvar) men ibland ser du t.ex en <META NAME="robots" CONTENT=" noindex"> vilket är ett sätt att tala om för sökmotorer att de inte ska indexera just den sidan men ändå läsa den och följa länkar. De flesta sökmotorer är överens om att följa instruktionen.

 

http_equiv betyder kort och gott "ekvivalent sak i http". och används just när man vill skicka en http-header (eller egentligen något som är ekvivalent med en sådan). HTTP är alltså protokollet som används när din webbläsare ber en webbserver om en sida, det är därför du skriver http:// först.

 

Jag tycker inte att det är nåt du behöver kunna i det här skedet. Lär dig HTML först, någon dag kommer du att behöva tala om för besökarens webläsare att den ska ladda om sidan var 10:e sekund och då är ett av alternativen att använda en meta-tag.

 

 

Länk till kommentar
Dela på andra webbplatser

Det Meta-taggar betyder för en webbläsare kan enklast beskrivas med ordet "förberedelse".

En webbläsare, efter en begäran av att du vill hämta sidan X, kommer ta emot en ström av tecken. Det första den gör är att cacha all data. Därefter kommer den parsa, dvs. steg för steg gå igenom och tolka, textmassan.

Det sätt som den gör detta på ska vi inte gå igenom,men det första den bör få hitta är direktiv om vilken typ av dokument det handlar om samt vilken typ av alfabet det är skrivet i.

<html... talar om att det är ett webbdokument. Attribut i denna tag skall vidare tala om framförallt vilken teckenkodning som används i dokumentet (utf8 är standard numer för alla språk utom asiatiska), samt vilket schema som används för html-koden som följer.

 

Ett schema är en exakt beskrivning av vad som är tillåtet i ett dokument och idag finns ett antal standardiserade scheman för olika varianter av HTML. Att det finns flera varianter beror på den naturliga utvecklingen av såväl standarder som teknik.

För att stödja äldre webbläsare så finns scheman kvar som tillåter äldre, idag utgångna, taggar och stilar.Genom att använda ett sådant, mer tillåtande schema, så kommer (de flesta) webbläsare simulera saker som de fungerade förr. Använder du ett striktare schema, vilket man bör, så kommer gamla saker helt enkelt inte ens renderas. Ett exempel på en gammal tagg är <font>. Denna kommer inte accepteras om du använder striktare scheman.

 

Eftersom du är nybörjare tycker jag dock inte du skall hänga upp dig på meta-delarna. Dessa är finlir (förutom teckenkodningen och schemat) som du kan ta vid produktionssättning.

 

 

 

EDIT: fhe beskriver, som vanligt, allt mycket bättre =)

 

EDIT 2: Ok, finlir var att ta i, nu rycker det i nerver hos andra avdelningar än utvecklingssidan. Meta-taggar har ju förstås en enormt stor vikt utanför det rent parse-tekniska, framförallt vad gäller klassificering, sökbarhet och dylikt. Men detta ligger bortom mitt intresseområde (tills jag får betalt för att bry mig om det iallafall =)

[inlägget ändrat 2008-11-15 07:42:02 av Anjuna Moon]

Länk till kommentar
Dela på andra webbplatser

EDIT: fhe beskriver, som vanligt, allt mycket bättre =)

Lite lustigt, jag tänkte precis säga samma sak fast tvärt om (jag berörde ju inte ens det där med schemat som du hade en utsökt förklaring på) :-)

 

[inlägget ändrat 2008-11-15 08:34:56 av fhe]

Länk till kommentar
Dela på andra webbplatser

Tack för svar fhe!

 

Skulle du kunna utveckla

http_equiv betyder kort och gott "ekvivalent sak i http". och används just när man vill skicka en http-header (eller egentligen något som är ekvivalent med en sådan).
.

 

Vad är innebörden av "ekvialanet sak i http" (jag vet vad http är i stora drag) men vad är det som skall vara ekvivalent, d.v.s. likvärdigt, fullt motsvarande? Likvärdigt med vad?

 

Länk till kommentar
Dela på andra webbplatser

Vad är innebörden av "ekvialanet sak i http" (jag vet vad http är i stora drag) men vad är det som skall vara ekvivalent, d.v.s. likvärdigt, fullt motsvarande?

 

Det kan vara mycket, ett typiskt svar från en web-server ser ut så här (i det här fallet http://www.idg.se/):

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Cache-Control: max-age=300, s-maxage=300,public
Expires: Sat, 15 Nov 2008 17:48:15 GMT
Content-Type: text/html;charset=ISO-8859-1
Date: Sat, 15 Nov 2008 17:43:15 GMT
Connection: close

följt av själva sidan.

 

Om du gör dina sidor med JSP, PHP, ASP eller motsv. så kan du i allmänhet kontrollera dessa sk headers själv. Om du inte vill ha webbserverns standard-inställning för Cache-control så kan du sätta om den. När du gör rena HTML sidor har du inte den kontrollen över själva HTTP-protokollet. Därför har man infört http-equiv så att du kan tala om i HTML att "den här meta taggen är ekvivaltent (dvs likvärdigt med/motsvarande) den här http-headern".

Hade idg skickat ut en html-sida ovan som hade följande meta i sidan:

<meta http-equiv="cache-control" content="max-age=0" />

så hade alltså rådet från sidan varit att webläsaren skulle betrakta det som att sidan inte ska cacheas alls även om det i headern står "Cache-Control: max-age=300, s-maxage=300,public"

 

http-equiv= innehåller alltså själva header-nyckeln och content= det som skulle stått efter i headern. Av naturliga orsaker går det inte att ersätta alla headers.

 

Edit:

Faktum är att idg.se:s förstasida faktisk gör just en sådan grej, trots http-headern överst har de följande i sidan de skickar ut:

<meta http-equiv="Expires" content="-1" />

Lite onödigt men de vill väl vara säkra på att budskapet går fram.

[inlägget ändrat 2008-11-15 19:42:49 av fhe]

Länk till kommentar
Dela på andra webbplatser

Tusen tack för det utförliga svaret fhe!

Det gjorde det hela bra mycket tydligare!

(Vad står värdet

"-1"
för - i ditt exempel
<meta http-equiv="Expires" content="-1" />
?)

 

Skulle du också, även om jag genom ditt exempel tror mig ha gissat mig till svaret, kunna förklara vad den exakta betydelsen av fält, respektive huvudfält, är i det här sammanhanget (min fråga 1.2. ovan).

 

Länk till kommentar
Dela på andra webbplatser

Googlar du på meta och expires så får du säkert rätt svar men jag har för mig att det är sekunder från nu som sidan "går ut", -1 innebär alltså att den redan har gått ut.

 

Jag har aldrig hört någon använda orden "huvudfält" men det är helt enkelt nyckeln i den sk headern (dvs huvudet i transaktionen). Antar att man kan kalla det för ett fält om man är lärare.

 

 

Länk till kommentar
Dela på andra webbplatser

Tack igen :)!

Låter märkligt att en sida kan gå ut innan den visats - vad har sidans skapare för nytta av det - och vad innebär det rent praktiskt - jämfört med om man satt värdet till "0"?

 

Du använder termen "nyckel" - som jag förstår på ett ungefär, men vad exakt avser man med den termen här (hur definieras termen, vad ingår i en nyckel)?

 

Länk till kommentar
Dela på andra webbplatser

och vad innebär det rent praktiskt - jämfört med om man satt värdet till "0"?

Det innebär att webbläsaren förhoppningsvis fattar att den inte behöver spara sidan i sin cache. Skillnaden mot 0 är nog obefintlig men man slipper risken att webbläsaren anser att 0 betyder "jag har ingen uppgift" och sparar den ändå.

 

(hur definieras termen, vad ingår i en nyckel)?

Rent krasst behöver du inte veta förrän du redan snappat upp tillräckligt mycket för att ha förstått ändå. Vill du ändå veta föreslår jag att du googlar på hur protokoll som http fungerar. Det finns hur många bra beskrivningar som helst.

 

De tre första länkarna i svaret här borde ge rätt bra svar:

http://www.google.se/search?q=how+does+HTTP+work

 

Länk till kommentar
Dela på andra webbplatser

Tack för svar och länkar (och tålamod) fhe!

Skillnaden mot 0 är nog obefintlig men man slipper risken att webbläsaren anser att 0 betyder "jag har ingen uppgift" och sparar den ändå.

- vilket alltså betyder att man skulle kunna ange vilket negativt värde som helst för att uppnå samma effekt?

Rent krasst behöver du inte veta förrän du redan snappat upp tillräckligt mycket för att ha förstått ändå.

- vilket ju är det jag gör, bland annat genom att ställa frågor i det här forumet - d.v.s. försöka "snappa upp tillräckligt mycket för att förstå"...

(mina sökningar på META över nätet har hittills varit begränsade till svenska sidor - vilket kanske är en för stor inskränkning...? det var när svaren uteblev där som jag postade detta inlägg). Länkarn jag fick av dig - och som jag läst igenom som hastigast - ser lovande ut!

 

Länk till kommentar
Dela på andra webbplatser

negativt värde som helst för att uppnå samma effekt?

Kanske, det är möjligt att -1 omnämns i specifikationerna. Kolla där.

 

vilket ju är det jag gör, bland annat genom att ställa frågor i det här forumet - d.v.s. försöka "snappa upp tillräckligt mycket för att förstå"

Det jag menade var att om du inte kan mer än du gör om HTML behöver du knappast kunna detaljer om http-protokollet. Det är i det läget bara slöseri med tid att försöka förstå och du skulle förmodligen bara hamna i en loop med nya frågor. Det är lite som att bekymra sig om hur man får in ÅÄÖ i subject på ett mail trots att protokollet inte har stöd för det. Man blir inte en bättre mailare för att man förstår de bitarna.

 

Det finns nästan exakt hur mycket som helst skrivet om http-protokollet men nyckel/värde-par är inte specifikt för http utan är något du hittar lite överallt. Jag orkar helt enkelt inte skriva en pedagogisk (eller inte) genomgång om något så grundläggande.

I korthet är det så att både när man skickar data till webbservern eller får data från den så föregås datat av ett sk huvud (ungefär som ett brevhuvud på ett pappersbrev). Detta huvud (från nu kallad header) har fält. Ett fält består av två delar, ett namn/nyckel och ett värde. Nyckeln så att den som tar emot datat vet hur den ska tolka värdet.

Men det har rätt lite med html att göra, det finns inget som säger att det måste vara just http som används för att transportera html.

 

Länk till kommentar
Dela på andra webbplatser

Tack för att du tagit dig tid med mina frågor fhe!

 

De svar och länkar jag fick har varit till stor nytta - inte minst det om "nycklar" och "fält":)! (För mig är det alltid av stor vikt att få någon form av definition av termer som förekommer - till en början just bara som en mycket schematisk och enkel sådan - för att få grepp om ämnet; lite på samma sätt som en definition av en okänd term från ett utländskt språk tillsammans med den etymologiska betydelsen, kort och enkelt, kan ge i sådana sammanhang - en första inblick, något att stå på, att utgå från för att kunna komma vidare. Något jag tycker jag fått genomgående i dina svar - t.ex. nu sist gällande "nycklar" - en alldeles lagom förklaring för min nivå att utgå från.)

 

Jag återkommer gärna med mer rent HTML-orienterade frågor om så skulle vara - och om du har möjlighet att svara!

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...