今天补一补基础知识:

一、服务器:能够提供服务的机器,取决于机器上安装的软件(服务软件)。服务器响应服务请求,并进行处理。

  Web服务器:提供Web服务,即网站访问。常见Web服务软件:Apache(开源)、Tomcat(Java)、IIS(微软)……

二、IP:网络之间互连的协议,即为计算机网络相互连接进行通信而设计的协议。IP地址具有唯一性(每台电脑都有一个唯一的IP地址)。

  IP地址就是类似127.0.0.1、27.166.14.101、163.129.1.108一样点与数字的组合。

三、域名(Domain Name):用一串用点分隔的名字 (www.bilibili.com) 组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位。

  IP地址不便于记忆,域名就是为了便于人类记忆和沟通而产生的

  特殊IP如:127.0.0.1,代表本机(给电脑用)

  特殊域名:localhost,代表本机(给人类用)

四、DNS(Domain Name System):域名系统,DNS就是域名和IP地址相互映射的数据库

  通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。

  过程:用户输入域名 localhost → DNS ( localhost 127.0.0.1 ) → 服务器电脑

五、端口(Port):可以认为是设备与外界通讯交流的出口。端口可分为虚拟端口和物理端口。

  其中虚拟端口指计算机内部或交换机路由器内的端口,不可见。

  通过不同的端口可以找到不同的服务软件。如XAMPP控制台里轻松可见的“不同软件使用不同端口”。

  全过程:用户输入域名 localhost : Port → DNS ( localhost 127.0.0.1 ) → 服务器电脑 →(通过Port找到)服务软件

六、静态网站的访问流程:

  浏览器输入URL发起访问 → DNS服务器上找到域名对应的IP返回给浏览器 → 浏览器通过IP地址找到服务器电脑 → 通过端口找到服务软件,Apache在文件系统通过URI获取所需网页 → 再由Apache返回结果给浏览器 → 浏览器解析html网页并显示。

  ① URL:统一资源定位符 (Uniform Resource Locator),互联网上的绝对路径。

  ② URI:统一资源标志符 (Uniform Resource Identifier),表示web上每一种可用的资源。如 HTML文档、图像、视频、程序等,它们都由一个URI进行定位。

  ③ URI和URL都定义了资源是什么,但URL还定义了该如何访问资源。URL是一种具体的URI,它是URI的一个子集。URL不仅唯一标识资源,而且还提供了定位该资源的信息。URI 是一种语义上的抽象概念,它可以是绝对的,也可以是相对路径;而URL则必须提供足够的信息来定位,是绝对的路径。

  ④ DNS服务器在寻找对应IP地址时有先后次序,将先找本地DNS再找网络DNS;本地DNS即本机中的 hosts 文件。

  

七、动态网站的访问流程:整体与静态差不多,多出了服务器端解析操纵数据库的内容。

  ① 服务器解析:查找动态网站中URI标识到的是 .php 文件,服务器的Apache需要经过PHP引擎来解析php代码;

  ② 数据库:php代码中可能包含操纵数据库的动作,PHP引擎连接到数据库服务器来读取数据;

  ③ 最后Apache再返回结果给浏览器,浏览器解析html并展示。注意这里浏览器解析的不是php代码,php代码只能由服务器端的php引擎解析。

  

睡觉zzZ

“GIS DICTIONARY A-Z” 查询页面开发(3)—— 基础知识之服务器、IP地址、域名、DNS、端口以及Web程序的访问流程的更多相关文章

  1. 微信公众号平台接口开发:基础支持,获取微信服务器IP地址

    官方说明 目前看不出来这个接口有哪些具体运用,但是既然有这个接口,那我们就试试能不能用 访问接口 修改WeCharBase.cs,新增以下2个方法 public static string Serve ...

  2. ArcGIS API for JavaScript开发初探——基础知识

    1.前言 在ArcGIS Web API开发体系中一共有四大类,分别为: ArcGIS API for Flex ArcGIS API for JavaScript ArcGIS API for RE ...

  3. IOS开发的基础知识

    1.为什么对一个变量release后还要设为nil 对一个变量release后,这个变量指向的内存释放了,但这个变量本身没变,仍指向原来的内存地址.若这个变量在释放后被访问,或者被重复release, ...

  4. 【千纸诗书】—— PHP/MySQL二手书网站后台开发之基础知识

    前言: 在具体回顾每一个功能的实现前,还是有必要先温习一些项目涉及到的PHP.MySQL[语法基础].项目github地址:https://github.com/66Web/php_book_stor ...

  5. Unity游戏开发面试基础知识

    面试第一次知识总结: 一.Unity基本操作 1.unity提供哪几种光源? 点光源.平行光.聚光灯.区域光. 2.物体发生碰撞的必要条件什么? 两个物体必须有碰撞体Collider组件,一个物体上必 ...

  6. “GIS DICTIONARY A-Z” 查询页面开发(2)——INSERT INTO数据库

    今日工作:数据库连接.数据写入 一.数据库连接:使用了pymysql库 from G2_dataClean import defList import pymysql db = pymysql.con ...

  7. “GIS DICTIONARY A-Z” 查询页面开发(1)——bs4与词典数据处理

    第一天的工作:找到数据源,数据下载,数据处理. 数据源:"http://webhelp.esri.com/arcgisserver/9.3/java/geodatabases/definit ...

  8. web页面开发相关基础

    CSS是一种用于web的标准布局语言,可以控制版面.颜色以及元素和图像的大小和位置.HTML文档应该利用外部样式表来定义文档中使用的样式.JavaScript也应该放在外部文档中,这个文档应该只包含J ...

  9. ArcGIS Engine开发前基础知识(1)

    ArcGIS二次开发是当前gis领域的一项重要必不可少的技能.下面介绍它的基本功能 一.ArcGIS Engine功能 在使用之前首先安装和部署arcgis sdk,(在这里不在赘述相关知识)可以实现 ...

随机推荐

  1. Linux提高工作效率的命令

    find ./ -name 'laun*'|xargs grep 8881 在laun开头的文件内查找8881 find ./ -name 'laun*' find . -type f -mtime ...

  2. 【CF10D】 LCIS

    题目链接 最长公共上升子序列 \(f[i][j]\)表示\(A\)的前\(i\)个数,匹配\(B\)的第\(j\)个数,且\(B[j]\)必选时的最长公共上升子序列长度 转移: if(A[i]==B[ ...

  3. 通过rpm安装crontab

    可以在对应的虚拟机centos上查看 所安装的crontab安装信息,然后选中rpm包进行安装,命令:rpm -qa |grep cron 如: 如没有上述信息,表名没有安装,也可以直接用cronta ...

  4. JUC锁框架_AbstractQueuedSynchronizer详细分析

      AQS是JUC锁框架中最重要的类,通过它来实现独占锁和共享锁的.本章是对AbstractQueuedSynchronizer源码的完全解析,分为四个部分介绍: CLH队列即同步队列:储存着所有等待 ...

  5. 2-1docker图形管理界面

    1.Portainer Shipyard:(停止维护) https://github.com/shipyard/shipyard https://www.portainer.io/installati ...

  6. Postman接口测试【3】_自动添加随笔

    一.抓取博客园编写博客地址 1.通过Charles抓取,获取到编写博客接口地址和接口的参数 二.Postman请求接口 打开Postman,输入上面抓到的接口地址,接口类型为POST,请求参数为x-w ...

  7. 什么是 ZFS文件系统?ZFS概念及特点简介

    什么是 ZFS? ZFS(Zettabyte File System)是由SUN公司的Jeff Bonwick领导设计的一种基于Solaris的文件系统,最初发布于20014年9月14日. SUN被O ...

  8. 用Powershell强制同步Windows主机与Internet time server的时间

    第一步,判断Windows Time服务是否正在运行,如果没有,则开启它. 第二步,强制同步,不知为何,往往第一次会失败,那么就多运行几次好了. Get-Service w32time | Where ...

  9. 实现一个特殊的栈,要求push,poll , getMin方法时间复杂度都是O(N)

    借助两个栈来实现 public class GetMinStack { private Stack<Integer> stackData; private Stack<Integer ...

  10. C语言函数调用

    1.backtrace一些内存检测工具如Valgrind,调试工具如GDB,可以查看程序运行时函数调用的堆栈信息,有时候在分析程序时要获得堆栈信息,借助于backtrace是很有帮助的,其原型如下: ...