感谢大佬:https://www.cnblogs.com/understander/p/5572132.html


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。

  1. 浏览器发送HTTP请求。
    HTTP请求由三部分组成,分别是:请求行、消息报头、请求正文

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

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

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

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

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

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

  6. 服务器回送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页面的访问的过程相关推荐

  1. 一个WEB页面的访问过程

    在了解web的访问过程之前,我们需要了解几个简单的概念: DNS工作原理:每个IP地址都可以有一个主机名,主机名由一个或多个字符串组成,字符串之间用小数点隔开.有了主机名,就不要死记硬背每台IP设备的 ...

  2. 一个Web页面的问题分析

    一个Web页面的问题分析 几个月之前我接到一个新的开发任务,要在一个旧的Web页面上面增添一些新的功能.在开发的过程中发现旧的代码中有很多常见的不合适的写法,结合这些问题,如何写出更好的,更规范的,更 ...

  3. 原型设计如何直接生成html,使用原型设计工具 Axure RP创建一个web页面框架

    前言 什么是原型呢? 原型设计是交互设计师与PD.PM.网站开发工程师沟通的最好工具.而该块的设计在原则上必须是交互设计师的产物,交互设计以用户为中心的理念会贯穿整个产品.利用交互设计师专业的眼光与经 ...

  4. java 页面输出一个页面_java学习之:一个完整页面输出信息的过程(以输出Doctor表中信息为例)...

    最近在练习java程序,总结一下从数据库查询信息并输出到jsp页面的过程.主要数据处理在src.cn.javatest包下面 项目预览 1,配置项目根目录src目录下的druid.properties ...

  5. 分享一个web页面背景全屏的jquery插件Fullscreen Background

    简单测试了下,直接谷歌 IE10 IE6 http://gayadesign.com/scripts/fullscreenbackground/ 下载地址:https://github.com/Gay ...

  6. django 第一个web页面

    主要参考 http://www.djangobook.com/en/2.0/chapter03.html http://blog.csdn.net/thinkinside/article/detail ...

  7. jmeter压测学习11-模拟浏览器访问web页面

    前言 在做性能测试的时候,有时候我们希望测试用户访问一个web页面的加载时间,使用 jmeter 压测的话,需模拟浏览器的行为,加载整个页面的内容. 包含一些js,css,png图片资源等文件的加载. ...

  8. 关于WEB页面处谷歌验证的接入

    首先我们需要认识到什么是reCAPTCHA reCAPTCHA 验证"机制可以提供保护,避免发生由机器人导致的垃圾邮件或滥用. 通过此机制,将向用户显示一个Web 页面,其中包含Google ...

  9. 像数据分析一样写 Web 页面,这个 Python 库做到了!

    作者|刘早起 来源|早起Python 提起用 Python 写一个 web 页面,总是会想起Django/Flask等这样的大家伙. 他们确实好用,但就是流程繁琐,比如有时就想写一个简单的页面,比如问 ...

  10. 前端app调起摄像头 只显示在页面_猫也能看得懂的教程之一分钟使用Vue搭建简单Web页面...

    本教程适合人群: 已经了解过过html.js.css,想深入学习前端技术的小伙伴 有前端开发经验.但是没有使用过Vue的小伙伴 有过其他编程经验,对前端开发感兴趣的小伙伴 学习本教程之后你将会: 了解 ...

最新文章

  1. Rust linux 系统接口使用
  2. 【Linux】 linux的进程系统一点补充
  3. Imageloader5-ImageLoader的变量初始化
  4. 干货:阅读跟踪 Java 源码的几个小技巧!
  5. The underlying provider failed on open 问题解决
  6. 线程回顾Thread
  7. showdialog 尝试读取或写入受保护的内存_?电脑组装内存要怎么选,安钛克KATANA RGB 内存超频实测...
  8. 再过四十年,你的女朋友可能是个美丽的机器人!不信你看
  9. 紧急通知,三星未收购智能家居公司
  10. 5. 高性能MySQL --- 创建高性能索引
  11. 《昆虫记》思维导图|思维导图模板创意漂亮
  12. 老师用计算机教我们画画拼音,小学一年级语文《汉语拼音13angengingong》第三课时教学设计.docx...
  13. bp神经网络综合评价例题,bp神经网络综合评价法
  14. android倒计时代码
  15. 三菱Q系列PLC ,QD77MS16走总线控制伺服项目
  16. 高项_第九章人力资源管理
  17. HTML-内嵌框架-00
  18. 卫春芳计算机基础视频,第一章 计算机基础知识.pptx
  19. access quick 取消显示_如何清除 windows中quick access
  20. codejam round1c第二题

热门文章

  1. html获取 条码枪,获取扫描枪条码
  2. html table td 居中显示,table td怎么垂直居中显示 详解table中如何隐藏td?
  3. 后端使用postman进行测试
  4. mybatis mysql连接时区_MySQL时区的查看和设置
  5. C语言 输入一个不大于五位的数字,先判断是几位数字,然后将其数字顺序输出和逆序输出
  6. Token的组成部分
  7. ACL-访问控制列表
  8. 关于slam第五讲物平面、归一化平面、像素平面、成像平面的思考
  9. github开源项目cxxopts一个轻量级c++命令行解析器分析文档(基于README)
  10. 小学计算机京剧脸谱教案,小学脸谱教案