一、URL(Uniform Resource Locator)统一资源定位符,是可以从互联网上得到的资源的位置和访问方法的一种简洁表示,是互联网上标准资源的地址。互联网上的每一个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该如何处理它。

基本URL包含模式(协议)、服务器名称(IP地址)、路径和文件名,如:协议://用户名:密码@子域名.域名.顶级域名:端口号/目录/文件名.文件名后缀?参数=值#标志。我们可以把URL分割成3个部分:协议、网络地址、资源路径。

协议是从该计算机获取资源的方式,常见的是HTTP、HTTPS、FTP,不同的协议有不同的通讯)内容格式;

网络地址指示该连接网络上的哪一台计算机,可以是域名或者IP地址,可以包括端口号(默认为80);

资源路径指示从服务器上获取哪一项资源。

二、DNS(Domain Name System)计算机域名系统,它是由解析器和域名服务器组成的。域名服务器是指保存有该网络中所有主机的域名和对应的IP地址,并具有将域名转化为IP地址的功能的服务器。其中域名必须对应一个IP地址,一个IP地址可以同时对应多个域名,但IP地址不一定有域名。

域名服务器为客户机/服务器模式中的服务器方,它主要有两种形式:主服务器和转发服务器。将域名映射为IP地址的过程就称“域名解析”。在Internate上域名和IP地址是一对一或多对一的关系,域名虽然便于人们记忆,但机器之间只能互相认识IP地址,他们之间的转换工作就称为域名解析,域名解析需要专门的域名解析服务器来执行,DNS就是进行域名解析的服务器。所以在上网输入网址时域名解析系统根据你输入的域名找到相对应的IP地址,这样才能上网,总结:域名的最终指向是IP。

三、TCP三次握手连接

当DNS解析完成后我们就拥有了目标IP和端口号,浏览器知道了服务器的IP地址之后就要根服务器的IP地址之后就要跟服务器建立连接了。

浏览器先发一个报文段,告诉服务器我想上你;服务器收到了之后回复说我准备好了,可以上;浏览器收到后回复我也准备好了,并告诉服务器:你已允许我上你了。三次握手之后,TCP连接就建立起来了,这时候浏览器就可以和服务器正式通讯了,也就是开始基于HTTP协议的信息交换。

四、HTTP通信

超文本传输协议(HyperText Transfer Protocol)是互联网上应用最广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP的最初目的是为了提供一种发布和接收HTML页面的方法。HTTP规定了客户机和服务器之间沟通的语言和规则

五、Servlet(Java的一个public interface)

servlets是这个公共接口的实现,servlets接收并响应客户端的请求。

ServletContainer(Servlet容器)是Web服务器或者应用服务器的一部分用于提供基于请求/响应发送模式的网络服务,解码基于MIME的请求,并且格式化基于MIME的响应。Servlet容器同时包含和管理他们的生命周期里Servlet。

六、浏览器渲染

当服务器提供了资源之后,浏览器获得数据,渲染网页然后呈现给用户,浏览器会执行操作:解析HTML,CSS,JS 渲染:构建DOM树,渲染,布局,绘制

渲染结束后,浏览器根据某些时间机制运行JS代码或与用户交互。

URL请求过程的更多相关文章

  1. 一次URL请求过程--tomcat

    一:请求的过程 1.DNS域名解析 2.建立TCP连接(三次握手) 3.发送请求--tomcat进行处理 4.四次挥手关闭连接 二:详解1---DNS域名解析 1.浏览器会检查缓存中有没有这个域名对应 ...

  2. 在浏览器中输入URL后,执行的全部过程。会用到哪些协议?(一次完整的HTTP请求过程)

    在浏览器中输入URL后,执行的全部过程.会用到哪些协议?(一次完整的HTTP请求过程) 整个流程如下: 域名解析 为了将消息从你的PC上传到服务器上,需要用到IP协议.ARP协议和OSPF协议. 发起 ...

  3. Objective-C中把URL请求的参数转换为字典

    上一篇博客中是把URL转换为字典,那么我们如何把URL请求中的参数封装成字典,然后再封装成数组呢?对OC中字符串操作熟练的小伙伴们应该觉得这是一个a+b的问题,没错把URL中的参数转换为字典主要是对字 ...

  4. ASP.NET 运行时详解 揭开请求过程神秘面纱

    对于ASP.NET开发,排在前五的话题离不开请求生命周期.像什么Cache.身份认证.Role管理.Routing映射,微软到底在请求过程中干了哪些隐秘的事,现在是时候揭晓了.抛开乌云见晴天,接下来就 ...

  5. web应用程序servlet的映射名称的规则及请求过程

    首先用MyEclipse创建一个web Project(工程名起为TestServletProject),新建一个Servlet(这里servlet的名字起TestServlet),将请求的servl ...

  6. zepto源码研究 - ajax.js(请求过程中的各个事件分析)

    简要:ajax请求具有能够触发各类事件的功能,包括:触发全局事件,请求发送前事件,请求开始事件,请求结束事件等等,贯穿整个ajax请求过程,这是非常有用的,我们可以利用这些事件来做一些非常有意思的事情 ...

  7. mvc请求过程总结

    前言 最近在思考一个问题,我的学习方法一般主要是看博客来学习新东西,但是光看,基本也没总结过,所以经常会出现这样的问题,某个知识点我知道,但是就是不能很好的表达出来,很简单的东西往往都不知道如何简短精 ...

  8. spring MVC处理请求过程及配置详解

    本文主要梳理下Spring MVC处理http请求的过程,以及配置servlet及业务application需要的常用标签,及其包含的意义. spring MVC处理请求过程 首先看一个整体图 简单说 ...

  9. TOMCAT原理详解及请求过程

    Tomcat: Tomcat是一个JSP/Servlet容器.其作为Servlet容器,有三种工作模式:独立的Servlet容器.进程内的Servlet容器和进程外的Servlet容器. Tomcat ...

随机推荐

  1. ArcObjects10.0MapControl不显示地图内容

    添加MapControl控件,右键属性设置MXD 文档之后,运行显示一片空白.拖放另一个控件axLicenseControl之后OK.

  2. USB设备不能用。提示Windows 无法启动这个硬件设备。 (代码 19)

    USB,由于其配置信息(注册表中的)不完整或已损坏, Windows 无法启动这个硬件设备. (代码 19) 原因:提示Windows 无法启动这个硬件设备. (代码 19) 处理解决方法: 1) r ...

  3. Oracle日志文件管理与查看

    Oracle日志文件管理与查看 from:http://hi.baidu.com/shuker/item/25ee611ee960c7426826bb1f 1.查询系统使用的是哪一组日志文件: sel ...

  4. http://docwiki.embarcadero.com/RADStudio/XE7/en/Delphi_Data_Types

    http://docwiki.embarcadero.com/RADStudio/XE7/en/Delphi_Data_Types

  5. C#下利用高精度计时器进行计时操作

    简介 精确的时间计量方法在某些应用程序中是非常重要的.常用的 Windows API 方法 GetTickCount() 返回系统启动后经过的毫秒数.另一方面,GetTickCount() 函数仅有 ...

  6. 设置UIButton文字大小颜色不同

    _loginBtn = [[UIButton alloc]initWithFrame:CGRectMake(iconX, CGRectGetMaxY(passwordBGView.frame)+25, ...

  7. 开源文件比较工具:WinMerge、KDiff3、diffuse

    为了寻找免费的BeyondCompare的替代品,最后经过实用,找到如下一些: 1.diffuse 感受:如果仅仅是比较两个文本类的文件,这个软件也就够用了. 安装好后,对着文件点击右键,会出现“Op ...

  8. RecyclerView 下拉刷新上拉加载

    步骤: 首先直接定义一个XRecyclerView继承RecyclerView,重写他的三个构造方法. init(Context mContext)方法用来初始化底部加载的view 回到XRecycl ...

  9. Error loading: \Java\jdk1.6.0_35\jre\bin\server\jvm.dll

    先看看错误:complie: [exec] Error loading: D:\Program Files\Java\jdk1.6.0_35\jre\bin\server\jvm.dll [exec] ...

  10. C++的优秀特性5:模版

    (转载请注明原创于潘多拉盒子) C++是强类型语言,而且恐怕是强类型语言里面类型最严格的.这意味着:1. C++变量的类型在定义时就确定了:2. 该类型在后续的生命期中不会改变.比如: int n = ...