一个web页面的访问的过程

Browers是如何在浩瀚的互联网上找到我们需要的资源呢?

以下将记录这个过程,这个过程是web编程需要需要熟知的。

用户打开浏览器输入目标地址(比如http://www.sina.com),那么接下来发生什么事情呢?

1,浏览器首先会查询本机的系统,获取主机名对应的IP地址。

2,若本机查询不到相应的IP地址,则会发起DNS请求,获取主机名对应的IP地址。

3,使用查询到的IP地址,直接访问目标服务器。

  首先说说访问目标地址的两种方式:

  第一,使用目标IP地址访问。比如你可以直接在浏览器中输入新浪的IP地址:218.30.13.36而直接访问它的主机。

  第二,由于IP地址都是一堆数字不方便人记忆,于是有了域名这种字符型标识。DNS服务器则完成域名解析的工作,它将你访问的目标域名转换成相应的IP地  址。

  因此若你的电脑上不了网未必就一定是目标主机的问题了哦!还有可能是DNS服务器的故障。所以这种情况下,你能熟知几个常用的IP地址,那么在命令行使  用ping一下就能知道问题是否是出现在DNS服务器上了。比较常用的IP有:百度180.76.76.76 谷歌8.8.8.8或8.8.4.4阿里云223.5.5.5或223.6.6。

  为什么我们不能自己建立一个www.sina.com或者www.google.com这样的网站而让全世界的人都访问我这个网站呢(显然sina和google肯定不会让你这么  干)?由以上几步可以看出,因为域名系统的存在,使得我们可以访问目标域名(www.sina.com)的时候,DNS服务器总是解析对应的IP地址(218.30.13.36)。所以若要别人都访问你的“新浪”,则需要将DNS的服务器路径指向你本机所在的IP地址,这显然得新浪愿意才行。

  那么,假如我为了学习一定要这样做呢?恩!确实也可以,可是此“新浪”非彼“新浪”。

  由步骤1可知道,浏览器在发送DNS请求的之前,需要访问本机的系统查看一下是否存在对应的主机IP。那么我们是否可以修改这个配置文件呢?答案是肯定  的。

  windows下打开文件:c:windows\system32\drivers\etc\hosts

  linux下打开文件:/etc/hosts

  加入你需要修改的IP地址,使目标的IP指向你本机的IP,则它就能实现访问你本机上的资源了。

  如加入:127.0.1.1 (假如这是我本机的IP)  www.sina.com

      127.0.1.1              www.google.com

  这样你和你的朋友都可以访问你主机上这个sina了,显然由以上的讨论可知,你朋友只能通过你的IP地址访问该sina。

4,浏览器发送HTTP请求。

  HTTP请求由三部分组成,分别是:请求行、消息报头、请求正文

    有兴趣的朋友可以在这里查看相关的资料

5, 从请求信息中获得客户机想访问的主机名。

6,从请求信息中获取客户机想要访问的web应用。(web应用程序指提供浏览器访问的程序,简称web应用)

7,从请求信息中获取客户机要访问的web资源。(web资源,即各种文件,图片,视频,文本等)

8,读取相应的主机下的web应用,web资源。

9,用读取到的web资源数据,创建一个HTTP响应。

10,服务器回送HTTP响应。

  HTTP响应也是由三个部分组成,分别是:状态行、消息报头、响应正文

  有兴趣的朋友可以在这里查看相关的资料

11,客户浏览器解析回送的资源,并显示结果。

时间: 2024-12-10 13:16:34

一个web页面的访问的过程的相关文章

一个Web页面的问题分析

一个Web页面的问题分析 几个月之前我接到一个新的开发任务,要在一个旧的Web页面上面增添一些新的功能.在开发的过程中发现旧的代码中有很多常见的不合适的写法,结合这些问题,如何写出更好的,更规范的,更可维护的代码,就是这篇文章要阐述的内容. 首先我查看了该Web页面的HTML代码,发现了一些典型的问题: HTML页面中包含了很多Javascript和CSS代码 HTML页面中引用了大量的外部Javascript文件和CSS文件 接下来就这些问题,我们逐个讨论一下: HTML页面中包含了很多Jav

python使用Django制作第一个web页面

第一步:打开pycharm,点击File>New File 选择Django,填写完点击Create创建如下图: 第二步:项目名和应用名都写的web,目录列表如下: 第三步:将web目录下面的view.py改成 from django.http import HttpResponse def hello(request): return HttpResponse("<h3>使用Django的第一个web页面</h3><hr>") 第四步:将ur

J2EE或MyEclipse简单配置以及第一个web页面

首先打开你下载安装好的MyEclipse,配置你开发需要的环境. 大致分为3步:①配置编码:Window-->preferences-->General-->Workspace-->Other-->"utf-8"-->Appley Web-->JSP Files-->Encoding(utf-8),联动的HTML Files的编码也变化了  ②配置jdk:Java-->Installed JREs-->Add,找到你的JDK,

apache ambari web页面无法访问解决办法

ambari-server启动成功,但是页面无法访问 作者:Bo liang链接:http://www.zhihu.com/question/34405898/answer/115001510来源:知乎著作权归作者所有,转载请联系作者获得授权. 1.先在命令行输入nproc命令.[[email protected] var]# nproc64得到这个数字后再打开ambari.properties文件.[[email protected] var]# sudo vi /etc/ambari-ser

web页面的访问过程

1,浏览器首先会查询本机的系统,获取主机名对应的IP地址. 2,若本机查询不到相应的IP地址,则会发起DNS请求,获取主机名对应的IP地址. 3,使用查询到的IP地址,直接访问目标服务器. 首先说说访问目标地址的两种方式: 第一,使用目标IP地址访问.比如你可以直接在浏览器中输入IP地址而直接访问它的主机. 第二,由于IP地址都是一堆数字不方便人记忆,于是有了域名这种字符型标识.DNS服务器则完成域名解析的工作,它将你访问的目标域名转换成相应的IP地址. 4,浏览器发送HTTP请求.      

如何加快web 页面的访问速度

如何提升网页加载速度? 1. 尽量减少HTTP请求 80%的时间是花在  images, stylesheets, scripts, Flash 等等的请求上. 那么最好的提升网站速度的方式就是简化你的设计. . 简化你页面上的元素 . 尽可能的用css代替图片 . 合并多个样式表 放入一个 . 减少scripts脚本,并把他们放在页面底部 2. 减少server响应时间 (1)chrome 页面速度检查插件 pagespeed (2) 在线检测 (3) 使用 YSlow 检测 3. 启用压缩

一个Web页面的生命周期 ,面试常常被问到

常规页生命周期阶段 一般来说,页要经历下表概述的各个阶段.除了页生命周期阶段以外,在请求前后还存在应用程序阶段,但是这些阶段并不特定于页.有关更多信息,请参见 ASP.NET 应用程序生命周期概述. 页请求 页请求发生在页生命周期开始之前.用户请求页时,ASP.NET 将确定是否需要分析和编译页(从而开始页的生命周期),或者是否可以在不运行页的情况下发送页的缓存版本以进行响应. 开始 在开始阶段,将设置页属性,如 Request 和 Response.在此阶段,页还将确定请求是回发请求还是新请求

websphere8.5 部署应用程序后,在web页面输入访问地址报错

@JustForFly [15-6-30 17:16:44:421 CST] 00000097 XmlConfigurat I com.opensymphony.xwork2.util.logging.commons.CommonsLogger info Parsing configuration file [struts-default.xml][15-6-30 17:16:44:453 CST] 00000097 XmlConfigurat I com.opensymphony.xwork2

Web页面解析过程(浅)

web页面流程 域名解析DNS 域名解析:把域名指向网络空间IP,让人们通过简单的域名访问Web网站的服务. DNS:域名系统 DNS服务器:记录着域名及其对应的IP地址 解析域名: ? 浏览器中输入目标网站的域名,浏览器会生成一个域名IP的请求 ? 请求第一时间会查询本地主机的DNS缓存表ipconfig/displaydns,若本地DNS缓存表有对应的IP地址则返回浏览器进行访问,如果没有则会向DNS域名服务器发出查询请求(上一级的DNS服务器) ? 本地DNS服务器接收到查询请求,按照第二