一、什么是网络?
互联网
互联网既是万维网,万维网WWW是World Wide Web的简称,也称为Web、3W。WWW是基于客户端/服务端方式的信息发现技术和超文本技术的综合。WWW服务器通过超文本标记语言(HTML)把信息组织成为图文并茂的超文本,利用链接从一个站点跳到另个站点。
WWW (World Wide Web,万维网)是存储在Internet计算机中、数量巨大的文档的集合。这些文档称为页面,它是一种超文本(Hypertext)信息,可以用于描述超媒体。文本、图形、视频、音频等多媒体,称为超媒体(Hypermedia)。Web上的信息是由彼此关联的文档组成的,而使其连接在一起的是超链接(Hyperlink)
万维网是无数个网络站点和网页的集合,它们在一起构成了因特网最主要的部分(因特网也包括电子邮件、Usenet以及新闻组)。它实际上是多媒体的集合,是由超级链接连接而成的。我们通常通过网络浏览器上网观看的,就是万维网的内容。
Internet是一个把分布于世界各地不同结构的计算机网络用各种传输介质互相连接起来的网络。因此,有人称之为网络的网络,中文译名为因特网、英特网、国际互联网等。Internet提供的主要服务有万维网(WWW)、文件传输(FTP)、电子邮件(E-mail)、远程登录(Telnet)、手机 (3GHZ) 等 [9] 。
WWW(World Wide Web)简称3W,有时也叫Web,中文译名为万维网,环球信息网等。WWW由欧洲核物理研究中心(CERN)研制,其目的是为全球范围的科学家利用Internet进行方便地通信,信息交流和信息查询 [9] 。
WWW是建立在客户机/服务器模型之上的。WWW是以超文本标注语言(标准通用标记语言下的一个应用)与超文本传输协议为基础。能够提供面向Internet服务的、一致的用户界面的信息浏览系统。其中WWW服务器采用超文本链路来链接信息页,这些信息页既可放置在同一主机上,也可放置在不同地理位置的主机上;本链路由统一资源定位器(URL)维持,WWW客户端软件(即WWW浏览器)负责信息显示与向服务器发送请求 [9] 。
客户机
客户机是一个需要某些东西的程序,而服务器则是提供某些东西的程序。一个客户机可以向许多不同的服务器请求。一个服务器也可以向多个不同的客户机提供服务。通常情况下,一个客户机启动与某个服务器的对话。服务器通常是等待客户机请求的一个自动程序。客户机通常是作为某个用户请求或类似于用户的每个程序提出的请求而运行的。协议是客户机请求服务器和服务器如何应答请求的各种方法的定义。WWW客户机又可称为浏览器
(1)帮助你制作一个请求(通常在单击某个链接点时启动)。
(2)将你的请求发送给某个服务器。
(3)通过对直接图像适当解码,呈交HTML文档和传递各种文件给相应的“观察器”(Viewer),把请求所得的结果报告给你
服务器
服务器的主要任务有:
(1)接受请求 [10] 。
(2)请求的合法性检查,包括安全性屏蔽 [10] 。
(3)针对请求获取并制作数据,包括Java脚本和程序、CGI脚本和程序、为文件设置适当的MIME类型来对数据进行前期处理和后期处理 [10] 。
(4)把信息发送给提出请求的客户机
解释:服务器也是主机,就是对外提供资源分享服务并接受外界请求的主机。
超文本
超文本(Hypertext)是由一个叫做网页浏览器(Web browser)的程序显示。网页浏览器从网页服务器取回称为“文档”或“网页”的信息并显示。通常是显示在计算机显示器。人可以跟随网页上的超链接(Hyperlink),再取回文件,甚至也可以送出数据给服务器。顺着超链接走的行为又叫浏览网页。相关的数据通常排成一群网页,又叫网站 [1] 。
HTTP和FTP
HTTP是Hypertext Transfer Protocol的缩写,即超文本传输协议。 顾名思义,HTTP提供了访问超文本信息的功能,是WWW浏览器和WWW服务器之间的应用层通信协议。HTTP协议是用于分布式协作超文本信息系统的、通用的、面向对象的协议。通过扩展命令,它可用于类似的任务,如域名服务或分布式面向对象系统。WWW使用HTTP协议传输各种超文本页面和数据
文件传输协议(FTP)是Internet中用于访问远程机器的一个协议,它使用户可以在本地机和远程机之间进行有关文件的操作。FTP协议允许传输任意文件并且允许文件具有所有权与访问权限。也就是说,通过FTP协议,可以与internet上的FTP服务器进行文件的上传或下载等动作。
IP地址—Internet地址
Internet地址又称IP地址,它能够唯一确定Internet上每台计算机、每个用户的位置。Internet上主机与主机之间要实现通信,每一台主机都必须要有一个地址,而且这个地址应该是唯一的,不允许重复。依靠这个唯一的主机地址,就可以在Internet浩瀚的海洋里找到任意一台主机 [5] 。
URL
在WWW上,任何一个信息资源都有统一的并且在网上唯一的地址,这个地址就叫做URL。URL也被称为网页地址,是因特网上标准的资源的地址(Address)。
解释:就是一种指针变量,URL指向的内容就是指针值。
相对路径和绝对路径
相对路径、绝对路径是什么?怎么去设置相对路径?
相对路径:相对于目前打开的A文件而言,其他在A文件中加载的文件或图片等资源的路径。
几种情况:A文件和被加载资源在同一目录下./标识当前目录
被加载资源在A文件所在的目录中的目录下./文件夹名/资源名
被加载资源在A文件的上一级目录内,../表示上级目录,../../上上级目录
IPv4
IPv4和IPv6就是网际协议版本4、6。
IPv4使用32位(4字节)地址,因此只有只有4,294,967,296个地址,所以近些年一直面临地址枯竭情况。
IPv4地址可被写作任何表示一个32位整数值的形式,但为了方便人类阅读和分析,它通常被写作点分十进制的形式,即四个字节被分开用十进制写出,中间用点分隔。
IPv4格式
四个字节,32个位,二进制写法就是00000000.00000000.00000000.00000000-到-11111111.11111111.11111111.11111111
由于二进制逢二进一,所以只能有2的32次方种变化,所以IPv4地址只能是4294967296这么些。
由于二进制转化成十进制逢十进一,00000000到11111111共有2的八次方即255种变化,所以IPV4一个十进制字节只能是0-255
局域网/NAT/内网
Local Area Network ,简称 LAN。无限局域网简称WLAN
学校、公司、实验室、家庭等地方在其内部内使用的网络,其中又包含内网和纯内网,局域网就是内网,但纯内网指的是不能访问外部网络的内网。
NAT(Network Address Translation,网络地址转换)。局域网中分配内网IP,能有效缓解公网IPv4地址枯竭的情况,只需要一个或几个公网IP就能搭建起上千上万人的内网。
常见内网网段
10.0.0.0/8 10.0.0.0 - 10.255.255.255
172.16.0.0/12 172.16.0.0 - 172.31.255.255
192.168.0.0/16 192.168.0.0 - 192.168.255.255
以上三个网段分别属于A、B、C三类IP地址
本地回环IP
127.0.0.1,通常被称为本地回环地址(Loopback Address),不属于任何一个有类别地址类。它代表设备的本地虚拟接口,所以默认被看作是永远不会宕掉的接口。
浏览器访问127.0.0.1即访问本机web服务,与访问localhost结果一样
DNS是什么?
DNS作用是什么?
访问域名和访问IP效果是一样的,只不过访问域名需要经过DNS解析,将域名指向IP地址。
如ping baidu.com和ping www.baidu.com得到的IP是不同的,我们访问得到的都是百度首页,但实际上访问的服务器不是同一个,如果直接访问IP也会到百度首页。
例如:你只知道一个人外号叫“老包”,不知道他具体名字,你要通过姓名找他就要先问路,有人(DNS服务器)手里记得有个表(DNS解析表),上面有各个人外号(域名)对应的真实姓名(IP地址),从他那得知了真实姓名才能去直接找人。
GTW原理就是DNS污染,所以如果我们知道Gxxgle对应的IP地址,就能通过在本地修改Host文件去手动本地DNS解析,也就能那啥了。
HTTP协议
常见HTTP状态码
1 信息,服务器收到请求,需要请求者继续执行操作
2 成功,操作被成功接收并处理
3 重定向,需要进一步的操作以完成请求
4 客户端错误,请求包含语法错误或无法完成请求
5** 服务器错误,服务器在处理请求的过程中发生了错误
状态码 状态码英文名称 中文描述
200 OK 请求成功。一般用于GET与POST请求
300 Multiple Choices 多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择
301 Moved Permanently 永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替
302 Found 临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI
303 See Other 查看其它地址。与301类似。使用GET和POST请求查看
304 Not Modified 未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源
400 Bad Request 客户端请求的语法错误,服务器无法理解
401 Unauthorized 请求要求用户的身份认证
403 Forbidden 服务器理解请求客户端的请求,但是拒绝执行此请求
404 Not Found 服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置”您所请求的资源无法找到”的个性页面
500 Internal Server Error 服务器内部错误,无法完成请求
501 Not Implemented 服务器不支持请求的功能,无法完成请求
502 Bad Gateway 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应
浏览器使用
浏览器怎么设置下载目录、设置主页、设置默认浏览器、设置默认搜索引擎、设置启动页、添加插件/拓展程序、怎么打开开发者模式、怎么添加书签、怎么保存密码、怎么显示书签栏、怎么添加书签文件夹
Cookie和Session
Cookie、Session是什么?两者有什么区别?
HTTP协议的无连接、无状态含义
HTTP报文结构、请求报文和响应报文报文结构
GET和POST请求
数据包常见请求方式有哪几种?GET请求和POST请求区别有哪些?
GET 方法请注意,查询字符串(名称/值对)是在 GET 请求的 URL 中发送的:
/test/demo_form.asp?name1=value1&name2=value2有关 GET 请求的其他一些注释:
GET 请求可被缓存
GET 请求保留在浏览器历史记录中
GET 请求可被收藏为书签
GET 请求不应在处理敏感数据时使用
GET 请求有长度限制
GET 请求只应当用于取回数据
POST 方法
请注意,查询字符串(名称/值对)是在 POST 请求的 HTTP 消息主体中发送的:
POST /test/demo_form.asp HTTP/1.1
Host: w3schools.com
name1=value1&password2=value2
有关 POST 请求的其他一些注释:
POST 请求不会被缓存
POST 请求不会保留在浏览器历史记录中
POST 不能被收藏为书签
POST 请求对数据长度没有要求
WEB架构
WEB架构:前端、应用程序、开发框架、后端语言、中间件、操作系统各是什么东西?(自己搜索配合《Web服务分层介绍》理解)
中间件功能是什么?
前端:html、css、js、jQuery、vue
应用程序:数据库phpmyadmin、
开发框架:cms,dedecms=<7.5 带来通用型漏洞
后端语言:PHP、JAVA/JSP、ASP、ASP.NET、
中间件(容器):Apache80、IIS、Tomcat、Nginx81:WEB-》HTTP80、HTTPS
操作系统:windows、Linux、Mac、Unix
Burpsuite安装和抓包
Burpsuite所需什么环境?怎么安装和启动?怎么导入Portswigger证书到Chrome和Firefox浏览器(Portswigger是Burpsuite工具的母公司)、证书应该导入到哪个目录下(即该导入到以下目录中的哪个:个人、其他人、中间证书颁发机构、受信任的根证书颁发机构、受信任的发布者、未受信任的发布者)
浏览器拓展程序ProxySwitchOmega怎么设置代理才能让burp抓到本机8080端口数据包、开启浏览器监听后打开Burpsuite抓包按钮抓取百度数据包。
网管、DNS、路由
网管(gateway)是什么?DNS服务器是什么?路由(route)是什么?
可参考:https://mp.weixin.qq.com/s/ECBeuf2P9h4kUUxJypVOkA
IP地址、MAC(物理地址)地址是什么?它们有什么对应关系?它们通过什么协议什么方式对应?
HTML
HTML是什么,做什么用,怎么编写?HTML常见标签含义?
HTML用标签表明一切,浏览器根据标签对应表将标签中的文本内容放到相应的位置
标记语言和编程语言区别?
编程语言-》C语言-》编译器-》汇编语言-》作用于系统
浏览器客户端-》请求-》网页《-HTML文本《-服务器
——————————————————————————————————
SQL
用phpstudy怎么打开数据库、怎么修改数据库密码、怎么用浏览器访问phpmyadmin?(详见《phpstudy简介》《phpstudy安装教程》)
关系型数据库和非关系型数据库区别
数据库结构即数据库、数据表、数据列、具体数据的对应关系
数据库常见命令:创建数据库、查看所有数据库、打开XX数据库、创建数据表、查询XX数据库内(数据)表、表中数据的增删改查、*和where限制语句
AND、OR、order by、Union限制语句
PHP
为什么必须开启如使用phpstudy去打开Apache开启WEB服务后,在浏览器输入 IP/目录/1.php 这样的格式才能解析php代码?为什么php文本不能像HTML文本一样直接双击在浏览器打开就能解析(原因自己查询标记语言和编程语言区别)
PHP表单中
