一个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,客户浏览器解析回送的资源,并显示结果。
TCP/UDP协议
TCP (Transmission Control Protocol):TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发 送。通俗说,它是事先为所发送的数据开辟出连接好的通道,然后再进行数据发送;
TCP支持的应用协议主要有:Telnet(远程终端协议)、FTP(File Transfer Protocol文件传输协议)、SMTP(Simple Mail Transfer Protocol简单邮件传输协议)等;
UDP(User Datagram Protocol):UDP则不为IP提供可靠性、流控或差错恢复功能。一般来说,TCP对应 的是可靠性要求高的应用,而UDP对应的则是可靠性要求低、传输经济的应用。
UDP支持的应用层协议主要有:NFS(网络文件系统)、SNMP(简单网络管理协议)、DNS(主域名称系统)、TFTP(通用文件传输协议)等。
TCP和UDP协议属于传输层协议。
常见互联网TCP/UDP协议其端口号:
FTP 控制 : 21端口 说明:ftp服务器所开放的端口,用于上传下载。最常见的攻击者用于寻找打开anonymous的ftp服务器方法。这些服务器带有可读写的目录。
SSH 服务 : 22端口 说明:pcAnywhere建立的tcp和这一端口的连接可能是为了寻找ssh。这一服务有许多弱电,如果配置成特定的模式,许多使用 RSAREF库的版本就会有不少漏洞存在。
Telnet 服务: 23端口 说明:远程登陆,入侵者在搜索远程登陆UNIX的服务。大多数情况下扫描这一端口是为了找到机器运行的操作系统。还有使用其他技术,入侵者会找到密码。
SMTP 服务 : 25端口 说明:SMTP服务器所开放的端口,用于发送邮件。入侵者寻找SMTP服务器是为了传递他们的SPAM。入侵者的账号被关闭,他们需要连接到高带宽的EMAIL服务器上,将简单的信息传递到不同的地址。
DNS 服务 : 53端口 说明: 为DNS(Domain Name Server,域名服务器)服务器所开放,主要用于域名解析,DNS服务在NT系统中使用的最为广泛。入侵者可能是试图进行区域传递(TCP),欺骗DNS(udp)或隐藏其它的通信。因此防火墙常常过滤或记录此端口。
HTTP 服务 : 80端口 说明:用于网页浏览。木马Executor开放此端口
POP3服务: 110端口 说明: 邮件协议3的服务开放端口,POP2、POP3都是主要用于接收邮件的。 它用于接收邮件,客户端访问服务器的邮件服务。 pop3服务有许多公认的弱点。关于用户名和密码交换缓存溢出的溢出弱点至少有20个,这意味者入侵者可以在真正登陆前进入系统。成功登陆后还有其它缓冲区溢出错误。
IMAP服务: 143端口 说明:是用于“Internet Message Access Protocol”v2(Internet消息访问协议,简称IMAP),和pop3问题一样多。许多IMAP服务器存在有缓冲区溢出漏洞。一种LINUX蠕虫admvorm会通过这个端口繁殖,因此许多这个端口的扫描来自不知情的已经被感染的用户。
HTTPS 服务: 443端口 说明:网页浏览端口,能提供加密和通过安全端口传输的另一种HTTP
终端服务: 3389端口 说明:windows2000开放此端口。
详细请参考:TCP/UDP常用端口列表。
一个web页面的访问的过程的更多相关文章
- InfluxDB安装后web页面无法访问的解决方案
本文属于<InfluxDB系列教程>文章系列,该系列共包括以下 16 部分: InfluxDB学习之InfluxDB的安装和简介 InfluxDB学习之InfluxDB的基本概念 Infl ...
- 一个Web页面的问题分析
几个月之前我接到一个新的开发任务,要在一个旧的Web页面上面增添一些新的功能.在开发的过程中发现旧的代码中有很多常见的不合适的写法,结合这些问题,如何写出更好的,更规范的,更可维护的代码,就是这篇文章 ...
- J2EE或MyEclipse简单配置以及第一个web页面
首先打开你下载安装好的MyEclipse,配置你开发需要的环境. 大致分为3步:①配置编码:Window-->preferences-->General-->Workspace--& ...
- apache ambari web页面无法访问解决办法
ambari-server启动成功,但是页面无法访问 作者:Bo liang链接:http://www.zhihu.com/question/34405898/answer/115001510来源:知 ...
- 一个Web页面的生命周期 ,面试常常被问到
常规页生命周期阶段 一般来说,页要经历下表概述的各个阶段.除了页生命周期阶段以外,在请求前后还存在应用程序阶段,但是这些阶段并不特定于页.有关更多信息,请参见 ASP.NET 应用程序生命周期概述. ...
- 将命令的输出生成一个Web页面
解决方法: ConvertTo-Html 命令: 生成一个HTML表格来代表命令的输出,为你提供的每个对象创建一行,在每行中,Powershell会创建代表对象属性的值. 实现效果:
- Web页面解析过程(浅)
web页面流程 域名解析DNS 域名解析:把域名指向网络空间IP,让人们通过简单的域名访问Web网站的服务. DNS:域名系统 DNS服务器:记录着域名及其对应的IP地址 解析域名: 浏览器中输入 ...
- 从插上网线到web页面请求,究竟发生了哪些过程?(计算机网络篇)
一.说在前头 好久没有更新博客了,汗颜,最近忙于各种实验与报告,但是还是要抽时间总结一下学的东西.欢迎转载,但是要注明出处哦(=^ ^=). 最近学了计算机网络,正好总结一下.本篇博客的大部分是跟计算 ...
- web页面的优化
众所周知,一个web页面通常会包括HTML(XHTML.XML).CSS.Javascript,而其中HTML(XHTML.XML)为结构化语言,用于构建页面结构和相关数据:CSS则负责页面的样式,即 ...
随机推荐
- Spark源码系列(八)Spark Streaming实例分析
这一章要讲Spark Streaming,讲之前首先回顾下它的用法,具体用法请参照<Spark Streaming编程指南>. Example代码分析 val ssc = )); // 获 ...
- VS2005 / windows sdk7.1配置
VS2005工程需要调用一些后期VS带的库 1. VS2005 安装顺序 1.vs20052.msdn(optional)3.VS80sp1-KB926601-X86-ENU_SP1.exe4.VS8 ...
- C primer plus 练习题 第三章
5. #include <stdio.h> int main() { float you_sec; printf("请输入你的年龄:"); scanf("%f ...
- linux中mysql密码找回的两种方式
方法一:修改my.cnf配置文件 1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库. 因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的 ...
- CSDN 2013年度博客之星评选——分享几张厦门杭州的美图
亲爱的小伙伴们,作者在6号至20号,一直在休假中,出去也没带电脑,今天回家意外的发现自己有幸成为“CSDN 2013年度博客之星评选”的候选人,在此也谢谢各位小伙伴们的支持,谢谢CSDN的鼓励.我的投 ...
- EHCACHE采用分布需要注意的地方
分布式EHCACHE系统,有两种同步方式 方式1 : RMI组播方式 这也是最常用的方式,配置简单,关键一点,各EHCACHE的节点配置都是一样的 原理:这样当缓存改变时,ehcache会向230. ...
- 超实用的8个Linux命令行性能监测工具
http://www.csdn.net/article/2012-09-17/2810047-command-line-tools-to-monitor-linux-perf 你值得拥有:25个Lin ...
- Alwayson+Replication
本文将介绍如何实现Alwayson + Replication ,通过AlwaysOn实现Publication database的高可用性,使Publication database在failove ...
- 固态硬盘寿命实测让你直观SSD寿命!--转
近年来,高端笔记本及系列上网本越来越多的采用固态硬盘来提升整机性能,尽管众所周知固态硬盘除 了在正常的使用中带来更快速度的体验外,还具有零噪音.不怕震动.低功耗等优点,但大家对固态硬盘的寿命问题的担忧 ...
- WCF安全1-开篇
概述: WCF安全简介 1.在企业级应用中什么是“安全” 答: (1)应用能够识别用户的身份-认证Authentication (2)应用能够将用户的操作和可访问的资源限制在其允许的权限范围之内-授权 ...