[Powered by Google Translate] [Seminar] [Forberedelse nettstedet for nettet] [Yuechen Zhao] [Harvard University] [Dette er CS50.] [CS50.TV] Ok. Her er enda en time av webutvikling hvis dere er opp for det. I dag skal jeg snakke om å forberede ditt nettsted for Internett. Hele dagen - og trolig de siste to uker - vi har snakket om hvordan du oppretter et nettsted, hvordan du bruker HTML, hvordan du bruker PHP, hvordan du bruker rammer, hvordan å være sikker på at du kan samhandle med databasen - slike ting. Men i dag, vi skal snakke om hvor nettstedet kommer til å leve etter CS50. Fordi tross alt, ikke CS50 ikke skje siste desember. Vi skal snakke om domenenavn, hosting. Vi kommer til å snakke om hva kryss-nettleser kompatibilitet og kryss-plattform kompatibilitet er, og hvordan du kan sørge for at nettstedet ditt kommer til å operere under alle forhold. Vi skal snakke om feilhåndtering og andre server magi. Vi snakker om ytelse optimalisering, søkemotoroptimalisering, og hvordan å få folk til å faktisk besøke nettsteder. Og til slutt, til bare noen gode ressurser sørge for at dere har nok av dem å gå av med det endelige prosjektet, og forhåpentligvis etter. Det første som vi skal snakke om er domenenavn. Akkurat nå er du programmerer i apparatet ditt, du kommer til en lokal host som ikke er faktisk et domenenavn. Det er liksom bare et kallenavn eller et alias for den faktiske Linux installasjon innsiden av enten VMware på en Mac eller VMware Player på en PC. Domenenavn tillate deg å sette et område på nettet og deretter gå til noe sånt www.google.com og få nettsiden. Hvordan fungerer de? La oss si at du er bare en gjennomsnittlig web server - gjennomsnittlig Web surferen og du har en bærbar PC, og du går til www.howstuffworks.com. Du kan sannsynligvis se hvor jeg stjal dette fra. Hvordan ting fungerer - maskinen din vil da spørre en lokal DNS-server, "Vet du hvor denne nettsiden er?" "Vet du IP-adressen til www.howstuffworks.com?" DNS-serveren kan si: "Ja, det gjør jeg." I så fall får du IP-adressen, og datamaskinen åpner den IP-adressen. Hvis den ikke gjør det, spør den annen DNS-server, "Hey! Vet du hva www.howstuffworks.com er?" Den serveren kan si: "Ja, det gjør jeg." Så, forteller den andre hva det er, og til slutt, blir denne informasjonen sendes til datamaskinen, og du kan få tilgang howstuffworks.com. Hvordan kan du få en av disse magiske ting? Hvordan kan du få kanskje www.yourname.com eller www.ilovecats.com? Du kan registrere deg for en, og det finnes en rekke nettsteder der ute som lar deg gjøre det. Du må - i de fleste tilfeller må du betale for dem. Det er visse domenenavn som er gratis. Hvis du går til www.co.cc eller. Tkdomainnames, de er gratis. Men, de kommer med visse begrensninger, og faktisk noen av dem kanskje ikke engang være ekte, toppnivå domenenavn som. com eller. net. Normalt ville jeg foreslå å gå for en av dem fordi brukerne er bare mer komfortabel med dem. Du har sett en masse. Coms. Du har sett en masse. Garn. Du sannsynligvis ikke har sett mye av. Co.cc 's, slik at de er vanskeligere å huske. Ulike nettsteder som GoDaddy eller NameCheap eller - Jeg brukte en som er slags sketchy - kalt activedomain.com. Det ser virkelig sketchy, men det har fungert veldig bra for meg. Og til slutt, har du andre som kanskje gjøre mer reklame som Network Solutions. Men hvis du går inn på NetworkSolutions.com og se på sine priser det er veldig dyrt. Jeg så på dem i går kveld. For ett år av et domenenavn, er det sannsynligvis ikke verdt så mye penger. Faktisk, hvis du får en. Com eller. Org eller. Net vanlig pris er ca $ 10 i året. Så hvis du betaler mye mer enn det, er det sannsynligvis ikke det verdt det fordi, tross alt, disse nettstedene ikke gjøre noe med dette domenenavnet. De bare gi den til deg, og så hvis du kan få det for billig, hvorfor ikke? Den andre tingen er når du har ditt domenenavn, så har du sannsynligvis ønsker å gå videre til enten Godaddy.com eller hvor du kjøpte domenenavnet og sette navnetjenerne for dette domenenavnet. Hva det betyr er når en bruker går til www.howstuffworks.com, de navnetjenere IP-adresser er IP-adressene som de ville være i stand til å se opp. De ville være i stand til å få tilgang til nettstedet gjennom disse navnetjenerne. Hvis du søker på hosting sted da verten vil mest sannsynlig gi deg navnetjenerne å bruke. Og til slutt, det er dette som kalles en WHOIS. En WHOIS-database er en database som du kan legge inn et domenenavn og det vil spytte ut litt informasjon om eieren av dette området og annen kontaktinformasjon. Nå, du kan si: "jeg egentlig ikke ønsker min hjemmeadresse eller jeg vet egentlig ikke ønsker min e-postadresse på nettsiden for alle å se eller på internett for alle å se. " Da vil du kanskje å bruke noe som mange av hosting tjenester tilbyr - som en WHOIS manager. En WHOIS manager er rett og slett en annen tjeneste som mange av dem sørge for at skjuler unna som informasjon og bare setter i hvem som er manager for navnet - for adressen er det vanligvis bare at firmanavnet som har gitt deg dette domenenavnet - og så deretter dine personlige opplysninger ikke blir lekket på internett, som vanligvis er ganske bra. Jeg selv bruker en av disse tjenestene. Hvis du ikke bryr deg om ditt eget privatliv så det spiller ingen rolle egentlig. En DNS-server står for Domain Name System, og hva det er - det er liksom som en hash table et sted som sier:  "Denne nettsiden adressen skal tilordnes til denne IP-adressen." Og det er alt det er. Så når du spør på dette DNS server, så kan du få IP-adressene for at tilsvarende domenenavn og deretter besøke dette nettstedet. (Publikummer stille et spørsmål - ikke hørbar) Den første? Det første nivået er faktisk vanligvis bare datamaskinen cachen. Datamaskinen slags husker sist gang du gikk til www.google.com det var på denne IP-adressen, og deretter etter en stund, vil det cache utløper, og det vil spørre som Comcast DNS, "Hei, hva er www.google.com?" Normalt, når du kjøper et domenenavn, og du registrerer en, og du setter opp en nettside, du kan ikke gå til denne nettsiden straks med dette domenenavnet fordi navnetjenere over hele kloden vet ikke om ditt domenenavn ennå. Det må fylles ut. Det tar vanligvis ca 24-48 timer. OK. Så, det er litt om domenenavn. De er veldig kul. Jeg tror du bør få en hvis du er seriøs om prosjektet og hvis du virkelig ønsker å gjøre prosjektet kjent over campus, å ha et domenenavn gjør det ser veldig profesjonelt. Så neste steg, selvfølgelig, er å ha noen form for hosting. Hvis du bare legge den ut på datamaskinen, er ingen noensinne kommer til å være i stand til å gå til det. Du kan potensielt sette opp en server på datamaskinen og holde datamaskinen på evig, men det er ikke anbefalt. Det finnes forskjellige typer hosting online tilgjengelig. Det er delt hosting. Det er VPN (uforståelig) som er virtuelle verter. Det er semi-dedikerte og dedikerte. Av de siste tre, VPN, semi-dedikerte og engasjerte er vanligvis dyrere. De er vanligvis brukes til nettsteder som krever mer ressurser. Hvis du bare starte opp med en nettside, det kan bare være mer økonomisk å gå med den delte hosting. Og hva delte betyr er bare en haug med nettsteder er alle sammen liksom på en server på denne nettsiden på denne verten server, og du kan få tilgang til nettstedet via domenenavn. Det er mange populære verter der ute. HostGator og DreamHost - de er veldig, veldig stort og veldig, veldig populær og veldig, veldig vellykket. Jeg personlig bruker en som heter MDDHosting. Hvis du går til www.mddhosting.com, det er min rekke valg. Jeg tror de er veldig bra. De har alltid vært veldig pålitelig, og jeg har aldri hatt noen problemer med dem. De har også svært konkurransedyktige priser. To som jeg ikke liker er GoDaddy - det er også en svært populær vert, men jeg har hatt forferdelige opplevelser med dem, og en masse folk som jeg vet har hatt virkelig forferdelige opplevelser med dem. De liksom gå etter folk som ikke vet hva de gjør - kanskje du gjør et nettsted for første gang, og slik at de liksom lure dem til å kjøpe sine hosting pakken. Ikke gjør det. Ikke fall for det. Gå se etter andre hosting-pakker som virkelig passer dine behov. Og den andre er - det er gratis vertene der ute. Det finnes nettsteder som vert for nettstedet ditt gratis - noen ganger ved å sette en annonse på nettstedet ditt, noen ganger ved å gjøre deltar du i deres forum, men noen ganger bare også gratis. Men vær forsiktig med gratis vertene fordi mange av dem egentlig bare gå ut av business etter noen måneder. Du bare ikke kan holde tritt med kostnadene. Andre er bare veldig upålitelig, og nettstedet vil alltid være nede, og du ikke vil at det skal skje. Hver vert vil tilby sitt eget kontrollpanel. Legg merke til at for apparatet ditt, det er egentlig ikke et kontrollpanel per se. Du må bruke terminalen til å gå og redigere filene. Du må chmod ting ved deg selv. Hvis du ønsket å gå til PHPMyAdmin, du må gå til localhost @ / phpmyadmin og sånne ting. Men med et kontrollpanel kan du gå inn og redigere filene på serveren din med Windows Utforsker eller en finder-type program. Eller du kan gå gjennom og se på dine databaser med sitt eget verktøy i stedet for phpMyAdmin. Så, det er mange valg her, og noen av de mer populære kontrollpaneler er der oppe. Men hvis du er ute etter en vert, bør du kanskje å se på hva slags tilpasninger og opsjoner de tilbyr meg å tilpasse min server og lage min nettside kjører bedre. Ja, så du kan spørre, "Vel, hvordan jeg velger hosting?" Hvis du går på til enhver vert nettside det er mye sjargong, og det finnes en rekke alternativer. Det er mange forskjellige priser også. Normalt jeg gå for billigere de bare fordi nettsteder som kanskje du og jeg gjør - og spesielt akkurat nå, spesielt som forretter - de trenger kanskje ikke så mange ressurser som kanskje en nettside som Microsoft.com. Først du ønsker å se på operativsystemet hvis du er virkelig nysgjerrig på om nettstedet ditt kommer til å ligge på Linux, Windows eller på Mac. Normalt vi bare gå med Linux fordi det er vanligvis den billigste, og også den som kanskje dere er mer kjent med på grunn av apparatet. Og så, kanskje de vil sette noen begrensninger på hvor mye båndbredde som du får - som hvor mange megabyte eller gigabyte data kan brukere laste ned fra deres nettside per måned? Eller diskplass. Hvor mye plass får du? Er det 500 MB? Er det 2 GB? Er det ubegrenset? I dag, mange av webservere gir deg ubegrenset diskplass som en måte for dem å lokke deg til å få sine hosting pakken. Men hvis du virkelig tenker over det, er når du noensinne kommer til å trenge ubegrenset diskplass? Hvis du har et par av HTML-filer, et par PHP, et par bilder - det er bare et par megabyte, og så jeg vanligvis bare gå for kanskje noen gigabytes med plass, og som kan være nok til å starte meg før jeg trenger mer. Endelig kan de sette begrensninger på hva slags - hvor mange databaser du kan ha. Kanskje du bare kan ha en database. Kanskje du kan ha to. Kanskje du kan ha 10. Er det virkelig viktig for deg hvor mange du får? Ting å stille deg selv. Og så til slutt, bare ting som språk. Har de støtter PHP? Har de støtter MySQL? De fleste hosting nettsteder støtter ikke disse fordi de er gratis. De er åpen kildekode. Det koster ikke dem noe å gi disse for deg. Men hvis du ønsker å bruke, sier Ruby eller Python eller noen av disse andre språk - de kan ikke støtte det på deres server, så det er viktig å se etter slike ting. Og til slutt, lar de deg til å gjøre noen mer avanserte ting som SSL eller cron jobber? SSL er et alternativ der du kan gjøre nettstedet mer sikker ved å gjøre det HTTPS og kryptere tilkoblinger. Og cron jobbene er bare kanskje skript som du vil kjøre hvert 5. minutt, hvert 10. minutt, hver 15. Mange delte hosting nettsteder gjør sette begrensninger på antall cron jobber som du kan kjøre fordi det tar opp mer ressurser. Og til slutt, bare alt annet som du ønsker å se på - sørg nøyaktig hva som skjer før du kjøper hosting pakken. Og til slutt, ytelse. Ytelsen er enorme. Hvor rask er min nettside kommer til å kjøre? De fleste brukere kommer ikke til å vente på selv sekunder for nettstedet ditt for å kjøre før de bare blir lei, og de går videre til MeanBase og begynne å se på bildene av katter - du vet det skjer, og du vil være sikker på at du får den brukeren om bord og at du har god oppetid som betyr nettopp det nettstedet ditt kommer til å være tilgjengelig til enhver tid. Mange verter har virkelig dårlig oppetid og som bare betyr at nettstedet kommer ikke til å være tilgjengelig, og du ikke vil at det skal skje fordi du kan være trist. Og du kan også spore din vertens ytelse med nettsteder som Pingdom.com eller Host-tracker.com, og de bare fortelle deg hvor ofte er nettstedet ned. Og til slutt, du ønsker å se om deres støtte. Hvis du har et problem de kommer til å svare deg innen 24 timer? De kommer til å svare deg innen 48 timer? Hosting tjeneste som jeg bruker normalt reagerer på meg i løpet av minutter som er virkelig fint. Puh! All right! Det er tid for en pause. Men jeg har ikke tenkt å gi det til deg. Vi vil bare se på bilder av søte katter nå og da. En annen virkelig, virkelig store ting er kryss-nettleser kompatibilitet. Hva mener jeg med kryss-nettleser kompatibilitet? Du vet, i dag er det ikke bare Microsoft Internet Explorer. Det er ikke bare Mozilla Firefox eller Safari. Nå har vi Chrome. Vi har Opera. Vi har Dolphin. Vi har Camino. Vi har Erobreren. Vi har alle disse forskjellige nettlesere. Ting som kommer ut nå - RockMelt - selv om de er alle basert på Chromium. Men faktum i saken er at det er ikke bare en nettleser lenger. Du er ikke bare vise disse nettsidene med ett program. Og så vil ulike nettlesere svare på annen HTML, ulike CSS, og annerledes JavaScript annerledes, og hvordan takler du det? Vel, i visse tilfeller, du virkelig ikke kan. Ditt nettsted - hvis det fungerer i en nettleser, vil koden du skrev ikke fungerer i en annen nettleser, og det er din jobb å sørge for at koden som du skriver er universell, at det fungerer overalt. Så, dette er virkelig farlig. Hvis du sier: "Vel, det fungerer på min datamaskin. Great! La oss gå videre." Vel, er det sannsynligvis ikke kommer til å fungere på min, og når jeg går til nettstedet ditt Jeg kommer til å være veldig trist, og jeg kommer til å forlate med en gang. Så, la oss se hvordan du kan unngå dette. Det første, selvfølgelig, er å bare bruke standard HTML, CSS og JavaScript. Hva mener jeg med det? Vel, det er mange av ikke standard ting der ute. For eksempel, i CSS det er mange versjoner. Hvis du ser noen CSS-regler med-moz-eller-webkit-, disse reglene er spesifikke til både Mozilla nettlesere og WebKit nettlesere, og så du vil være sikker på at du kanskje ønsker å unngå disse tingene fordi hvis du bruker-moz-som regel bare kommer til å jobbe med Firefox. Og hvis du virkelig vil at det skal se bra ut på Internet Explorer også, du kommer til å være ute av lykken. For HTML også, kan du gjøre ting i HTML som fungerer i en nettleser men at brudd i en annen, og du vil unngå at så mye som mulig. Og til slutt for JavaScript selv - det er mange versjoner av JavaScript, og denne sommeren vi kjørte inn i et problem der Document.getElementsByClassName-- som vanligvis er en funksjon som er definert som en del av JavaScript standard - var ikke å finne i Internet Explorer 8. Så, i løpet av sommeren jobbet jeg i et laboratorium, og vi holdt på å bygge online eksperimenter. Og vi trodde det var fungerer veldig bra før vi innså brukere som brukte Internet Explorer 8 ikke kunne sende inn sine resultater. Vi var glipp av mye data. Det gjorde oss veldig trist. Så, du alltid vil være sikker på at skriptene skal jobbe overalt. Og til slutt, bruk validator.w3.org som er det vi forteller deg å gjøre i PSett 7. Pass på at sidene er validert. Det er viktig fordi at minst er et første skritt tilregnelighet sjekk. Er koden min faktisk standard kompatibel? En annen måte å sortere hjelp du sørge for at nettstedet skal fungere under de fleste omstendigheter er å kanskje bruke noen biblioteker og rammeverk fordi disse virkelig smarte utviklere har tenkt på disse spørsmålene for deg. De har gått gjennom, og de har skrevet ulike funksjoner som fungerer på tvers av nettlesere. For eksempel bruker vi jQuery i PSett 7. Selv om du kanskje ikke har sett den, gir jQuery en rekke funksjoner som ellers ville ha til å skrive selv. Men disse utviklerne skrev det, og de sørget for at det fungerer i alle nettlesere. Og Bootstrap - som er en annen CSS rammeverk som vi viste deg i PSett 7 - det virkelig tar bort mye av hodepine med å utforme nettsteder som ser bra ut. i alle nettlesere. Og til slutt, hvis du kan unngå det, jeg vanligvis unngå koding fra bunnen av. Hvis du bare lage en nettside for din skole klubb, for eksempel, og alt du trenger å gjøre er å vise noen få sider og kanskje har din president gå i og endre et par ting her og der - det er egentlig ingen grunn til å kode det opp selv. Som tar mye av din tid. Det tar mye av energien din, og du må gå gjennom, og du må finne ut, vel, dette kommer til å se bra ut i denne nettleseren, går det å se bra ut i denne nettleseren. Kanskje bruke noen av disse oppdateringene som andre allerede har skrevet for deg, som WordPress eller Joomla eller Drupal. Disse kalles innhold - disse kalles CMSs som i utgangspunktet er like pakker som allerede kommet gjort for deg, og du kan laste dem ned, sette dem på serveren din, og tilpasse dem slik du vil, og du allerede har en løpende nettside. De kode pakkene er noe å se på. Disse tingene er åpen kildekode med mindre du går for noe sånt - Hvis du leter etter en form pakke, det er ting som ikke er gratis som VBulletin eller IP.Board. Hvis du ikke trenger noen av disse avanserte funksjonene, du kan alltid velge den gratis alternativ. Og til slutt, er det ingen unngår det. Du må teste, teste, teste. Du må teste koden på alle disse nettleserne og på alle disse plattformene. Og du vet, IE6 - har gudskjelov folk begynt å flytte bort fra IE6 fordi tilbake i dag, kanskje et par år siden, hadde webutviklere å alltid, alltid, alltid frir til IE6 svakheter i å følge standarder. Nettsider bare så slags 1990-tallet i mangel av et bedre måte å håndtere det. Du kan også bruke nettleseren screenshots å sjekke CSS. En virkelig kul nettside er browserlab.adobe.com. Dette er en gratis tjeneste satt ut av Adobe. Og hva de gjør er kan de ta skjermbilder av nettstedet ditt kjører under ulike forhold - som kjører under forskjellige nettlesere, kjører under ulike plattformer - og viser deg hvordan de ser ut. Bare for å vise deg hva jeg mener her, jeg opprettet en nettside i fjor kalt Livet ved Harvard, og hva jeg prøvde å gjøre - Jeg prøvde å gjøre my.harvard bedre. Fordi hvis du var her i fjor, gjorde my.harvard ikke ser ut som det ser ut nå. Det ser litt ekkelt. Men nå ser det mye bedre. Min gjennomføringen var ikke så nyttig lenger, men alt det samme, du vet, jeg prøvde å legge til - (uforståelig) mange uansett - og det ser ut - det ser veldig bra ut på min datamaskin. Og så, kanskje hvis jeg hadde hatt mer tid ville jeg ha gått videre til nettleseren lab, og jeg ville ha sett på, vel, hvordan det ser i Chrome 18 på Windows. Jeg ville bla ned og jeg ville se - oh no! Se på kunngjøringer boksen. Teksten min var overfylte. Så, det er ille, ikke sant? Hvis en bruker er å bruke Chrome på Windows og kommer til nettstedet mitt, som ser umiddelbart veldig uprofesjonelt. Så skal jeg gå inn i CSS min og finne ut hvilken del av CSS mitt er å bryte her. Hvorfor er det ikke vises riktig og fikse det slik at alle brukere kan se den samme nettsiden og være like fornøyd. Og til slutt, vel, nettleser screenshots er fin for å teste CSS, men hva om JavaScript ditt? Hva om hvis du har noen kompliserte skript som kjører? Vel, du kan alltid gjøre virtualisering. Hvis du har en Mac kan du bruke Bootcamp eller VMWare å virtualisere kanskje en kopi av Windows og bruk Internet Explorer der. Eller du kan gå videre til noe sånt Spoon.net, som dessverre kun fungerer på PC. Men det de gjør er veldig kul. De virtualisere programvare for deg slik at du kan kjøre forskjellige versjoner av IE, for eksempel. Du kan kjøre forskjellige versjoner av Firefox. Du kan kjøre forskjellige versjoner av Safari og teste ut alle nettsteder der. Dessverre er de ikke gratis. Det er en betalt tjeneste, så det er alltid liksom dette - det er alltid liksom dette kompromisset mellom, vel, jeg kommer til å gjøre min hjemmeside ser bra ut. I så fall kan jeg betale for enkelte tjenester for å hjelpe meg gjøre det. Eventuelle spørsmål på dette punktet om noe som vi snakket om? Awesome. Ok. Nå har vi flere ting å snakke om. Hva med feil? Hvordan kan du sørge for at nettstedet skal styre selv når skjer det noe galt? Kanskje du ikke har en side som heter food.php. Men meg, jeg går til nettstedet ditt, og jeg prøver å få tilgang til food.php. Er du bare kommer til å vise meg at hvit side der det står 404 - Fil ikke funnet? Eller har du tenkt til å si, "Vel, jeg beklager at jeg ikke kunne finne dette for deg, men kanskje her er noen andre ressurser for å hjelpe deg søke etter det du trenger. " Andre feil - så, dette kalles HTTP-feil som er bare noen feilkoder at serveren kan ha sendt tilbake til nettleseren i tilfelle noe dårlig skjer. 400 - Bad Request. 401 - Uautorisert. 403 er slags vanlig når du har en katalog som ikke er ment å nås av brukeren, men brukeren prøver å uansett. Og 500 - Internal Server Error - som vanligvis skjer når du har noe virkelig ille skjer med din PHP-kode. Men i alle fall, disse slags nettlesere - gjør disse slags feil skjer. Så, hvordan kan du være sikker på at du grasiøst håndtere disse feilene og sørge for at brukeren ikke bare liksom henger der? Her kommer. Htaccess. Nå. Htaccess er noe som fungerer på Apache-servere, noe som fungerer og fungerer på noen andre servere også. Dette er bare en måte for deg å konfigurere serveren slik at du kan gjøre det gjøre hva du vil den skal gjøre. Noen ting du kan gjøre. Du kan kontrollere cache innstillinger. Kanskje det er en bestemt side på nettstedet ditt at du sørge for at brukeren re-laste ned hver gang brukeren kommer og besøker ditt nettsted. Eller kanskje du har noen URL som er som yoursite.com / test / html / pages / hello.html og du bare ønsker at det skal være yourname.com / hallo -. vel, kan du bruke htaccess å omdirigere en nettside til en annen. Du kan også bruke den til å gjøre godkjenning. Kanskje det er noen deler av nettstedet ditt som du må bruke en annen passord. Du kan blokkere bestemte IP-adresser, blokkere bestemte domener. Kanskje du bare virkelig ikke liker Harvard studenter med ditt nettsted. Vel, har du muligheten til å blokkere alle Harvard IP-adresser. Til slutt, kan du behandle ting - du kan skrive viss kode for å lage din server behandler som. Zhao eller. navnet ditt eller. hallo sider som PHP-kode. Kanskje det vil være nyttig. Kanskje det ikke vil være. Og til slutt, kan du bruke den til å håndtere feil svar. Hva mener jeg med det? Hvis du bare legge kode som dette - ErrorDocument 404 og deretter henvise dem til noen feil side, kan du være sikker på at brukeren ikke ser bare veldig, veldig stygg 404 og vise dem noe fint. La oss faktisk ta en titt på hvordan vi kan gjøre det med din PSett 7. Her er jeg i apparatet mitt. Jeg kommer til å åpne Chrome, og da skal jeg prøve å få tilgang til en side som ikke finnes på CS50 Finance. Så, lokale verten - cats.php-så, legge merke til at jeg opprettet en feil dokument som sier: "Canz ikke finne z side!" Den har en veldig trist katt på den. Hvis du går på Twitter, hvis du går på noen av disse andre steder, du kan ikke finne en side, de vanligvis prøver å vise deg en søt bilde slik at du ikke er altfor skuffet. Du kan også ha noe som er mer profesjonelle som sier: vel, jeg er lei for at jeg ikke kunne finne siden, men kanskje her er en søkeboks. Eller kanskje her er noen linker som vil hjelpe deg å finne den linken som du ønsker. Så hvordan gjør jeg dette? Hvordan er dette enda mulig? Hvis vi går inn i vår terminal her - Jeg skal bare å zoome inn litt - merker at jeg har en ny side. Inside my HTML katalogen det heter - du kan ikke se det - det heter error.php. Og error.php er bare en fil som jeg har gjort som viser deg at selve siden. Jeg kan vise deg hva error.php er. Det er akkurat denne siden. Det sier: "Oh no! Canz ikke finne z side!" Og hvis du ønsker å se - så merker at htaccess slags er et merkelig navn.. Det starter med en prikk som betyr at det er en systemfil. Det er en skjult fil som er normalt ikke vist. Hvis du gjør ls-en, kan du se alle de skjulte filer i en bestemt katalog, og ja, skjønner du. htaccess er en av dem. La oss gå videre og åpne htaccess. - med gedit - Boom! Alt jeg har er en linje der - Feil dokument for 404 feil som også er kjent som fil-ikke-funnet feil. La oss omdirigere dem til noe som kalles error.php. Du kan ha morsomme ting som canz ikke finne z side! Og det er også veldig kule ting du kan gjøre med. Htaccess. Hvis du ønsker å se mer. Htaccess magi, dette er en veldig kul nettside for å gå til - det heter javascriptkit.com/howto/htaccess.shtml-- Hvis du ønsker å utføre mer server magi. Og det kan være veldig gøy. Puh! All right! Mer søte bilder. Dette er en fyr å gjøre push-ups, og hans katt prøver å hjelpe. Jeg tror det er veldig søt. Dessverre, jeg har ikke en katt sånn. OK. Så har vi snakket om. Htaccess. Vi har snakket om feilbehandling. Vi har snakket om hosting, domenenavn. Vi har snakket om kryss-nettleser kompatibilitet. Nå hvordan gjør vi for at nettstedet faktisk utfører? Hvordan kan vi sørge for at hvis jeg går til nettstedet ditt Jeg kan se din side i løpet av få sekunder? En av de tingene som jeg tror folk bare liksom glemme er bilde optimalisering. La oss si at du ønsket å sette et bilde på nettstedet ditt og det er to MG stor. Det kan være greit for oss fordi vi er ved Harvard, og vi har en veldig rask Internett-tilkobling. Men tenk noen i Kina. Tenk deg noen i India. Tenk at noen kanskje i landlige Kansas som kanskje ikke har den samme typen bredbånd som vi har. Hvis du har en 2 MB bilde på nettstedet ditt, og brukeren prøver å få tilgang til den, det kommer til å ta dem veldig lang tid å laste ned. Så, hvis du ikke trenger den slags oppløsning, så kan du endre størrelsen på bildet med noe som Adobe Photo Shop. Det er vanligvis et alternativ som heter trygt for web og enheter, og hva den gjør er det strimler ut all unødvendig informasjon og liksom komprimerer filen til en liten størrelse, slik at du kan sette det på nettstedet ditt, og alle brukere som prøver å laste ned den siden kommer til å laste ned en mindre versjon av bildet. Hvis du ikke har Adobe Photo Shop webresizer.com er også en annen ressurs hvor du kan legge inn ditt bilde og det vil spytte ut nøyaktig samme bilde, men det vil være noe sånt som tre ganger mindre. Så det er veldig nyttig for brukerne. En annen ting du kan gjøre er minify kode. Hvis vi tar en titt på Google.com, vil du se at det ikke er liksom den samme HTML og CSS som vi er vant til. Bare kommer til å se på kildekoden her. Hvis jeg bare bla nedover - wow, ser det ganske ekkelt. Dette ville få en null på stilen. Hvis du kodet dette for PSett din, vil du få en null på stilen din. Dette har ikke noe mellomrom. Navnene ser virkelig kryptisk. Det er alt veldig ekkelt. Og manuset for å lukke i kroppen - den avsluttende HTML - de er alle sammen - alt smushed sammen. Hvorfor gjør de dette? De minified koden sin. Legg merke til at dette dokumentet kommer til å være mye mindre for meg å laste ned enn noe med hvite felt, enn noe med virkelig lange variabelnavn. Hvis du minify koden du stripe ut alt det hvite området. Selvfølgelig Nettleseren din ikke bryr seg hvis du har noen mellomrom i koden. Du stripe det ut, nå kan jeg laste ned en mindre fil - Nå filen - dokumentet som vi kommer til å laste ned har en mindre filstørrelse, det vil være raskere for meg å laste ned, og det er nyttig. Hvis du arbeider med nettsteder og du lanserer en nettside, det er nesten alltid godt å minify koden. En annen grunn til at det kan være bra er kanskje du ikke vil at andre skal bruke koden. Kanskje du ikke vil at andre skal bruke CSS. Du vet hvis du virkelig ønsket å være gjerrig med det, så kan du også minify koden din, og det ville være vanskeligere for meg å stjele den fordi jeg har ingen anelse om hva som skjer. Du kan også gå til nettsteder som minify.avivo.si. Tjenester som dette på nettet hjelpe deg minify koden din, slik at du ikke trenger å gjøre det for hånd. Definitivt ikke gjøre det for hånd. Ok. Nå snakker om skript. Kanskje i din PHP-koden er det noe som du ikke trenger å gjøre. Kanskje det er ekstra sløyfer i det. Vi snakket om koden utforming i CS50. Selv om du koder i C hvis du har - hvis du gjør ekstra arbeid at du ikke trenger å gjøre, vel, som kommer til å bremse ned skript på nettstedet ditt, og dette er spesielt viktig for nettsteder fordi brukerne i dag er svært utålmodig. Hvis du gjør unødvendig arbeid, det kommer til å ta dem lenger for å komme til den informasjonen de ønsker, og de kommer til å være veldig fornøyd. Til slutt, kan det være lurt å optimalisere databasetabeller. Husker vi snakket om indekser. De er ikke bare bra for å sørge for at du har en rad som er unik. De er også bra for å sørge for at databasen virker raskt. Hvis du ønsker å lese opp på at farten til MySQL dokumentasjon, eller du kan se på - vel, hvordan jeg optimalisere database bordet? Hvordan kan jeg sørge for at jeg har indekser som hjelper meg med å få til informasjonen raskere? Det er også lite triks som du kan bruke som caching. Hvis du har PHP - hvis du har en blogg, for eksempel, og du har - og det er drevet av PHP eller noe annet språk - du kan cache din blogg på la oss si 50-minutters intervaller, slik at du kan tjene statiske sider eller statiske HTML til besøkende til nettstedet ditt. På den måten brukerne ikke trenger å kjøre PHP script hver gang, og kanskje det vil være raskere for dem å få tilgang til denne informasjonen. Og til slutt, kan du bruke noe sånt som CDN. Legg merke til at når du laster ned en PSett, du alltid gå til CDN.CS50.net. Hvorfor det? CS50 bruker også liksom som en CDN - et innhold distribusjonsnett - noe som betyr bare at det er en haug med servere kanskje et sted rundt om i verden som hjelper tjene sidene til de besøkende. Hvis de besøkende får en side fra en server som er nærmere dem geografisk, så mest sannsynlig er det at besøkende kommer til å få denne filen mye raskere. Det er også kilder på nettet som hjelper deg å gjøre det. En av dem er CloudFlare. De tilbyr en gratis CDN service. Hvis du har store filer som serverer til brukerne, så kanskje det er bedre å sette dem på en CDN slik at de kan komme til dem raskere. Den endelige tema for dagen er søkemotor optimalisering. Hva er søkemotor optimalisering? Det er å sørge for at søkemotorer som Google eller Bing eller Yahoo kan gå videre til nettstedet ditt, og gjennomgå webområdet ditt og indeksere nettstedet ditt, og når Jeg, for eksempel, kan du gå videre til Google.com og jeg prøver å søke etter noe, da nettstedet vil dukke opp. Hvordan kan du sørge for at nettstedet ditt er en av de 10 beste? For som vi alle vet, hvis du søker etter noe på Google og det er ikke på topp 10 du er mest sannsynlig ikke kommer til å se i neste 10 år. Dette er liksom et tema som er innhyllet i mystikk. Det er mye hype der ute på Internett. Det finnes en rekke overtro om hvis du x da Google vil like deg bedre. Hvis du y da Google vil like deg bedre. Det er nok bedre å se inn i søket giganten dokumenter selv. Dette er ett av dokumentene på Google som forteller deg nøyaktig hvordan du kan optimalisere nettstedet ditt slik at Google kan få tilgang og indeksere det veldig pent. Du trenger ikke å kopiere ned denne nettadressen fordi denne presentasjonen kommer til å være online uansett. Hvis du ser på dette og lese du dette er det noen svært nyttige tips der inne. Google forteller deg - hvis du virkelig vil at nettstedet skal indekseres godt så bør du gjøre alle disse tingene. En annen ting som søkemotorene virkelig liker er nytt innhold. Hvis du har innhold som er oppdatert svært regelmessig da søkemotorer si, ooh, jeg liker ditt nettsted. Jeg kommer til å gå til webområdet ditt veldig ofte. Jeg kommer til å indeksere mye av sidene. Hvis du har nytt innhold da er du mer sannsynlig å dukke opp - du er mer sannsynlig å være mer relevant. Du er mer sannsynlig å bli mer oppdatert, og søkemotorer er mer sannsynlig å sette området ovenfor andre. Dype lenker er også viktig. Hvis du virkelig ønsket at området skal se bra ut i en søkemotor øyne har en rekke andre nettsteder knyttet til det og knyttet dypt inn i din webside. Ikke bare link til hjemmesiden din. Link til kanskje yourname.com / noe / noe / something.php. Som - til en søkemotor - midler, wow, de har virkelig interessant innhold at noen andre er knytte så dypt inn på nettstedet deres at jeg burde virkelig, virkelig legge mer vekt på at nettstedets sider. Hvis du har nøyaktige side titler, hvis du ikke har noen feil som er bra fordi hvis en søkemotor prøver å besøke nettstedet ditt, og det blir en feil, er det sannsynligvis kommer til å gi opp veldig, veldig snart. Og til slutt, du vil ha en rask lastetid fordi søkemotorer - akkurat som mennesker - ikke ha mye tålmodighet for trege nettsteder. Dette er en måte for deg å sørge for at du møter opp høyere i søkemotor søk og forhåpentligvis dermed få mer trafikk. Fordi tross alt, du har brukt all denne tiden utvikle ditt nettsted. Du brukte hele denne tiden lansere denne nettsiden online. Du ønsker å sørge for at du har nok av brukere som faktisk kan se innholdet. Andre gode ressurser å bruke. Google Webmaster Tools er noe å se på. Dette hjelper bare du skal se - Google er ikke indeksere nettstedet mitt. Hva slags feil er det møter? Hvor mange sider har det indeksert? Hva betyr det synes er det viktigste innholdet på siden min? Kanskje det er ikke det jeg vil den skal være. Kanskje jeg må endre min nettside litt slik at det er reflektert bedre hva min hjemmeside egentlig dreier seg om. Google Analytics er en annen veldig kul verktøy. Du kan legge til en liten bit av JavaScript til sidene dine. Og så etterpå kan du gå til Google Analytics, og det vil spore de besøkende demografi og nettstedet vekst. Den vil fortelle deg nøyaktig hvor mange besøkende besøker nettstedet ditt innenfor en bestemt dag, i løpet av en bestemt time, i løpet av en bestemt uke. Hvor mange besøkende fra Kina? Hvor mange besøkende fra Antarktis - du får til ditt nettsted. som kan være noe kult å se eller det kan også være nyttig fordi du prøver å målrette en bestemt gruppe. Kanskje du prøver å målrette tenåringer med nettstedet ditt, og du ser at de fleste av de besøkende til nettstedet ditt er kanskje 30 - til 40-åringer, så kanskje enten du har et problem, eller du kan bare si, vel, så kanskje jeg bare skal endre min nettstedets fokus slik at Jeg fokuserer mer på denne aldersgruppen. Google Apps - hvis du ønsket å ha slags e-post med ditt domenenavn - kanskje noe liker yourname@yourname.com-- du kan bruke Gmail-adresser - du kan bruke Gmail-tjenesten og Google Apps er en måte å gjøre det. Du kan sette opp spesifikke e-postadresser som er spesifikke for ditt domenenavn i stedet of@gmail.com. Og til slutt, det er webutvikler utvidelser og add-ons - for Chrome, for Firefox, for andre nettlesere - som lar deg gå inn og inspisere CSS, inspisere JavaScript, se nøyaktig hva som er galt med din JavaScript script, og kanskje det vil være nyttig for de-avlytting formål, for du finne ut - Vel, hvorfor ikke min nettside vises riktig i denne nettleseren? Og til slutt, hvis du ønsket å lære mer om alle disse temaene - hvis du ønsket å lære mer om HTML og CSS og JavaScript - fordi tross alt, vi bare lært deg litt - du kan gå nettsteder som W3Schools.com å lete etter mer ressurser. De har veldig fine tutorials på hvordan gjør jeg x, eller hva betyr y? Hvis du ønsket å lære mer om disse språkene du kan bare gå hit. OK. Jeg tror jeg ønsket å forlate de siste minuttene av denne for spørsmål, så er det noen spørsmål om noe som vi snakket om? [Publikummer] Hva slags ting er på W3Schools og hvordan er det dekket? [Yuechen Zhao] Hva slags ting? Så, er en av de aller største tingene som jeg bruker mye deres referanser. Deres referanser detalj, for eksempel for CSS - hva dette betyr, eller hvis du ønsket å endre bakgrunnen på en side - hvordan gjør du det? Hvilke nettlesere støtter denne kommandoen? Ting som det. Og så har de også bare har veldig fine øvelser på HTML, på PHP, på JavaScript, på MySQL, på alle slags forskjellige emner. De har fine øvelser. De lærer deg hvordan du gjør ting. Det er hyggelig å være i stand til å gå og lære mer om disse emnene. [Publikummer] HTML 5 er fortsatt ikke kompatible med alle nettlesere der ute. Vil du anbefale bare bor borte fra det på grunn av kompatibilitetsproblemer? Hvordan vil du takle det? [Yuechen Zhao] Ja, så er spørsmålet HTML5 er fortsatt en baby standard. Det er egentlig ikke støttes av mange nettlesere, så bør vi unngå det? Jeg tror fjor jeg ville ha vært en veldig stor tilhenger av, la oss unngå HTML5 fordi det fortsatt - det er fortsatt veldig mye nytt og faktisk HTML5-standarden har ikke blitt sluttført ennå. Og så, det er egentlig ingen HTML5-standarden. Men jeg tror spesielt hvis du utformer en hjemmeside nå, kan det være bedre hvis du bare gå med HTML5 fordi det er liksom kommer til å være fremtiden, og hvis du vil at nettstedet skal være fremtidsrettet og du ønsker at nettstedet skal arbeide i fremtidige nettlesere, kan det være bedre å begynne å bygge noe for fremtiden enn for det siste, og også nettopp på grunn av det faktum at HTML5 er egentlig ikke så annerledes fra HTML4 eller XHTML. Hvis du bruker HTML5, det normalt vil fungere i de fleste nettlesere. Du bare må liksom gå inn og sørge for at disse screenshots og sørge med å gå videre til disse nettstedene selv. Men mest sannsynlig vil det fungere med mindre du bruker svært spesifikke funksjoner som HTML5. Legg også merke til at for CS50 - for eksempel til videospiller som vi bruker - den bruker HTML5 og HTML5 video for å vise forelesningene. Men hvis du har en veldig gammel nettleser, så det vil falle tilbake på Flash. Så, det er også noe annet - har en fall-back system for når du bare vet at nettleseren ikke kommer til å håndtere hva du vil den skal håndtere. Andre spørsmål? Noe som vi snakket om. OK. Så jeg tror det er omtrent det for meg. Jeg tror det er det. (Applaus) Cool. [CS50.TV]