dns protocol let hosts resolve any host name to ip address start with root name server and work down zones dns resolution resolve some host address some filts resolves query to local name server recursive query: nameserver completes resolution and returns the final answer flits-> nameserver iterative query: name server returns the answer or who to contact next for the a nswers localnameserver->all others recursive query: lets server offload client burden(simple resolver) for manageab ility let servers cache over pool of clients for better performances iterative query: lets server file and forget easy to build high load servers caching: resolution latency should be low add delay to web browsing cache queries/responses to answer future queries immediately includes partial(iterative answers responses carry a ttl for caching local nameservers typically run by it but may be your host or ap google public dns root nameservers: . is served by 13 server names a.root.servers.net to m.root-servers.net all name servers need root ip address handled via configuration file(name.ca) there are >250 distributed server instances -highly reachable reliable service most servers reached by ip anycast(multiple servers reached by ip anycast) .routes take client to the closest oneservers are ipv4 to ipv6 dns protocol: queries and response message built on udp messages port 53 arq for reliability server is stateless messages linked by 16 bit id field service reliability via replicas run multiple nameservers for domain return the list client use one answer helps distribute load too security: dnssec(dns security extensions) http introduction: basis for fetching web pages resolve server to ip address set tcp connection to server send http request for page execute fetch embedded resources render clean up any idle connections ststic web page dynamic web page: javascript on client php on server ssl/tls for https later http: text commands headers commands used get: read web page head: read web page header post: append to a web page put: store a web page delete remove webpage trace: echo incoming request connect:connect through proxy options query options for a page code returned with response status code 1xx : information 100 server agrees to handle client request 2xx: success 200=reuest succeeded 204 no content present 3xx: redirection 301=page moved 304 :cache page still valid 4xx: client error 403=forbidden page 404 page not found 5xx: server error 500=internal server error 503 try again later many header fields specify capability and content content type:text/html cookie: lect=8-4-http browser capabilities(client server) caching related(mixed directions) browser context(client server) content delivery(server client) performance of http parallele and persistent connections page load time(plt): structure of page/content http and tcp network rtt and bandwidth http 1.0 uses one tcp connection to fetch one web resource make hhtp very easy to build but poor plt sequential request/responses multiple tcp connection setups to same server multiple tcp slow start phase network not used effectively worse with many small resources/pages ways to decrease plt: reduce content change http to make better use of available bandwidth change http to avoid repeated transfer of same content move closer to client