0x01-windows基础

wpshqr1年前windows基础471
动态交互:动态脚本语言+数据库,可以通过sql查询来展示页面
公网ip是可以被内网地址访问和请求的
内网的私有地址是不可以被公网直接访问的
域名   二级域名 三级域名
域名后缀:com .cx  .top  .net  .org  .cn等
协议:域名:端口
域名的意义:便于记忆,相对于ip 域名更加方便记忆
%url编码
putty:远程连接SSH服务的工具
web即全球广域网,也称万维网,他是一种基于超文本的和HTTP的、全球性的、动态交互的、跨平台式的分布式图形信息系统。
web通信流程:输入www.baidu .com
解析成ip地址:与192.168.2.100格式类似的外网ip
浏览器通过该ip访问web服务器获取web资源
再返回给客户端
最后在呈现在用户面前
Snipaste_2021-01-18_10-06-37.png
顶级域名、二级域名:.com域名是使用最早也最广泛的域名。例如表示工商企业的.com .top,表示网
络提供商的.net,表示非盈利组织的.org等。
国家域名:分为不同级别,包括顶级域名、二级域名,三级域名等。
顶级域名又分两类:一是国家顶级域名(简称nYTLDs),有200多个国家都按照ISO3166国家代码分
配了顶级域 名,例如中国是cn,美国是us,日本是jp等
二是国际顶级域名:(简称iTDs),例如表示工商企业的.com .top,表示网络提供
商的.net,表示非盈利组织的.org等。
HTTP协议:超文本传输协议(HTTP)是一种通信协议,他是一个简单的请求-相应协议,它允许将
超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。
HTTP协议是一个属于应用层的面向对象的协议,它通常运行在TCP之上。
HTTP协议是构建在TCP/IP协议之上的,他是TCP/IP协议的一个子集。
Web是一种基于超文本的和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统。
HTTP协议特点:1.只支持客户/服务器模式,也就是客户端发起请求,服务端响应请求
2.简单快速
客户端向服务端发起请求时,只需要请求方法和路径
常用的请求方法,GET、POST、HEAD等,请求方法决定了客户端与服务器联系
方式的不同。由于HTTP协议的简单,使得HTTP服务器的程序规模小,因而速度很快
3.灵活
允许传输任意类型的数据类型
正在传输的类型有Content-Type(HTTP包中用来表示内容类型的标识)加以标记
4.无连接
无连接即是限制每次处理一个请求
服务端处理完客户端的请求,并收到应答后断开连接
可以设置超时,也可以keep-alive来保持连接
这样可以节省传输时间,节省占用资源
5.无状态
HTTP协议是无状态协议
无状态是指协议对事务处理的能力是没有记忆力的。缺少状态意味着如果后续再次
使用,需要再次重新传输。
这样会导致每次连接后的数据量增大
服务器不需要先前信息时,它应答就比较快
它利用cookie以及session技术维持简单的连接
HTTP/1.1协议中定义了八种方法或者叫“动作”来表明对Resquest-URL指定的资源的不同操作方式,以下为常用的八种:OPTIONS:返回服务器所支持的HTTP请求方法
HEAD:与GET请求相一致的响应,但只返回头部信息,响应体将不会被返回
GET:向特定的资源发出请求
POST:向指定资源提交数据进行处理请求。数据被包含在请求体中
PUT:向指定资源位置上传其最新内容
DELETE:请求服务器删除指定资源
TRACE:回显服务器收到的请求,主要用于测试或诊断
CONNECT:开启客户端与请求资源之间的双向通道,它可以用来创建隧道(代理)
GET与POST区别:
1.URL可见性 :GET传递参数在URL中可见,POST不可见
2.传输数据大小:GET传递数据最大长度2048个字符
POST没有长度限制
3.后退页面:GET后退不会有影响,POST后退会重新提交
4.缓存:GET请求可以被缓存,请求的记录会保留在历史记录中;POST不会
5.编码方式:GET请求支持URL编码
POST支持多种编码
6.字符类型:GET只支持ASCII字符;POST没有字符类型限制
DNS介绍
域名的格式,url的格式   中间件
通常访问网站是通过IP或者域名来进行,与IP相比,域名更方便记忆,但是TCP/IP协议使用IP进行访问,那么此时就需要一种功能或机制来将域名转换为IP地址,而DNS服务就是用来解决这个问题的,它主要提供了域名到IP的解析服务。
DNS使用TCP和UDP端口53。
全球有13台DNS根服务器
Snipaste_2021-01-18_11-24-53.png
1.域名解析
首先浏览器会解析域名(准确的叫法应该是主机名)得到对应的IP地址,那怎么解析到对应的ip地址呢?
1.浏览器会首先搜索浏览器自身的DNS缓存(缓存时间比较短,大概只有1分钟,且只能容纳1000条缓存),看自身的缓存中是否有该域名对应的条目,而且没有过期,如果有且没有过期则解析到此结束;
2.如果浏览器自身的缓存里面没有找到对应的条目,那么浏览器会搜索操作系统自身的DNS缓存,如果找到且没有过期则停止搜索解析到此结束;
3.如果在windows系统的DNS缓存也没有找到,那么尝试读取hosts文件(位于C:\\Windows\System32\driver\etc),看看这里面有没有该域名对应的IP地址,如果有则解析成功;
4.如果在hosts文件中也没有找到对应的条目,浏览器就会发起一个DNS的系统调用,就会向本地配置的首选服务器(一般是电信运营商提供的,也可以使用像Google提供的DNS服务器)发起域名解析请求(通过的是UDP协议向DNS的53端口发起请求,这个请求时递归的请求,也就是运营商的DNS服务器必须得提供给我们该域名的IP地址),运营商的DNS服务器首先查找自身的缓存,找到对应的条目,且没有过期,则解析成功。如果没有找到对应的条目,则有运营商的DNS代我们的浏览器发起迭代DNS解析请求,他首先是会找根域的DNS的ip解析地址(这个DNS服务器都内置13台根域的DNS的IP地址),然后进一步请求;正常情况下通过这四步基本就能解析域名获得IP了。
2.TCP的三次握手
拿到域名对应的IP地址后,User-Agent(一般是指浏览器)会以一个随机端口(1024<端口<65535)向服务器的WEB程序的80端口发起TCP的连接请求。这个连接请求(原始的HTTP请求经过TCP/IP4层模型的层层封包)到达服务器端后(这中间通过各种路由设备,局域网内除外),进入到网卡,然后是进入到TCP/IP协议栈(用于识别该链接请求,局域网内除外),进入到网卡,然后是进入到内核的TCP/IP协议栈(用于识别该链接请求,解封包,一层一层的剥开),还有可能要经过Netfilter(属于内核的模块)防火墙的过滤,最终到达WEB程序。
3.建立TCP连接后发起HTTP请求
经过TCP3次握手之后,浏览器发起了HTTP的请求
4.服务器端响应HTTP请求,浏览器得到html代码
服务器端WEB程序接收到http请求以后,就开始处理该请求,处理之后就会返回给浏览器html文件
5.浏览器解析html代码,并请求html代码中的资源
浏览器拿到html文件后,就开始解析其中的html代码,遇到js/css/image等静态资源时,就向服务器端去请求下载(会使用多线程下载,每个浏览器的线程数不一样),这个时候就用上keep-alive特性了,建立一次HTTP连接,可以请求多个资源,下载资源的顺序就是按照代码里的顺序,但是由于每个资源大小不一样,而浏览器又多线程请求资源,所以请求成功显示的顺序并不一定是代码里的顺序。浏览器在请求静态资源时(在未过期的情况下),向服务器端发起一个http请求(询问自从上一次修改时间到现在有没有对资源进行修改),如果服务器端返回304状态码(告诉浏览器客户端没有修改),那么浏览器会直接读取本地的该资源的缓存文件。
常见的请求头    
Snipaste_2021-01-18_11-38-15.png
一个HTTP请求报文由四个部分组成:请求行、请求头部、空行、请求数据
请求行由方法字段、URL字段和HTTP协议版本3个字段组成,他们用空格分开
方法字段就是HTTP使用的请求方法,比如常见的GET/POST
HTTP协议版本又两种:HTTP1.0/HTTP1.1,区别:
HTTP1.0对于每个连接都只能传送一个请求和响应,HTTP1.0没有Host字段
HTTP1.1在同一个连接中可以传送多个请求和响应,多个请求可以重叠和同时进行,有Host字段
空行的作用时通过一个空行,告诉服务器请求头部到此为止
请求数据:若方法字段是GET,则此项为空,没有数据
若方法字段是POST,则通常来说此处放置的就是要提交的数据。比如要使用POST方法提交一个表单,其中有user字段中数据为"asmin",password字段为"123456",那么这里的请求数据就是user=admin&password=123456,使用&来连接各个字段。
HTTP报文头大体分为四类:通用报文头 请求报文头
响应报文头                 实体报文头
HTTP/1.1中共有47种报文头字段
常见的请求头
ACCEPT                   浏览器可以接收的媒体类型
Accept:text/html      代表浏览器可以接受服务端响应的类型为html格式,如果无法返回,返回406错误
Accept:*/*   浏览器可以处理所有类型的请求
Accept-Encoding        浏览器声明自己接收的编码方法,通常是指压缩方法,是否支持压缩,使用什么方法压缩(gzip、delflate)
Accept-Language        浏览器声明自己接收的语言
Accept-Language :zh-ch,zh,q=0.7.en-us,en;1=0.3
客户端要求服务端有中文版资源的时候,返回中文版对应的响应,没有则返回英文版
CONNECTION             处理完这次请求后是否断开连接还是继续保持连接
Connection:keep-alive    当网页打开完成后,客户端和服务端之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问服务器上的网页,会继续使用这条未断开的连接
Connection:close            当网页打开完成后,客户端和服务端之间用于传输HTTP数据的TCP连接关闭,如果客户端再次访问服务器上的网页,需要继续新建一个TCP连接
HOST                             请求头中主要用于请求资源的主机地址和端口号,它通常是在URL中提取出来的   例如:在浏览器中请求http://77169.com:8080  那么请求头中 Host:77169.com:8080
Referer                            客户机通过这个头告诉服务器,它是从哪个资源来访问服务器的(防盗链),包含一个URL,用户从该URL代表的页面出发访问当前请求的页面。
User-Agent                    告诉服务器,当前用户使用什么操作系统,浏览器是什么版本及型号,通常情况下User-Agent来判断浏览器的类型,从而进行兼容性的匹配
Content-Type           说明报文体中的对象的媒体类型
text/html:HTML格式
text/plain: 纯文本格式
text/xml:XML文档格式
image/jpeg:jpg图片格式
image/gif:gif图片格式
image/png:png图片格式
application/xhtml+xml:XTML格式
application/xml:XML数据格式
application/atom+xml:Atom XML聚合格式
application/json:JSON数据格式
application/pdf:pdf格式
application/msword:Word文档格式
application/octet-stream:二进制流数据(如常见的文件下载)
application/x-www-form-urlencoded:表单提交
Content-Length:表示请求消息正文的长度
HTTP响应报文
响应行:一般由协议版本、状态码及其描述组成 比如HTTP/1.1 200 OK
其中协议版本HTTP/1.1后者HTTP/1.0,200就是它的状态码,OK则为它的描述
响应头:响应头用于描述服务器的基本信息,以及数据的描述,服务器通过这些数据的描述信息来决
定客户端如何处理等一会他送回的数据。设置HTTP响应头往往和状态码结合起来。
响应体:响应体就是响应消息的实体,如果是纯数据就是返回纯数据,如果请求的是HTML页面们就是HTML代码,如果是JS就是JS代码,如此之类
Snipaste_2021-01-19_10-39-09.png
HTTP状态码
200        OK       请求成功,一般用于GET和POST请求
201        Created 已创建。成功请求并创建了新的资源
301        Moved Permanently         永久移动。请求的资源已被永久的移动到新URI,返回信息会包括
新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使
用新的URI代替30
302        Found                 临时移动。与301类似。但资源只是临时被移动,客户端应继续使用原有
URI
304         NOT Modified     未修改。所请求的资源未修改,服务器返回次状态码时,不会返回任何
资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端
希望只返回在指定日期之后修改的资源
307         Temporary Redirect     临时重定向。与302类似,使用GET请求重定向
400        Bad Request           客户端请求的语法错误,服务器无法理解
401        Unauthorized            请求要去用户的身份认证
402        Payment Required   保留,将来使用
403         Forbidden                服务器理解请求客户端的请求,但拒绝执行请求
404       Not  Found              服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设
计人员可设置“您所请求的资源无法找到”的个性页面
405      Method Not Allowed    客户端请求中的方法被禁止
500     Internal Server Error    服务器内部错误,无法完成请求
501     Not Implemented         服务器不支持请求的功能,无法完成请求
502     Bad Gateway              作为网关或者代理工作的服务器尝试执行请求时,从远程服务器收到了
一个无效的响应
504     Gateway Time-out       充当网关或代理的服务器,未及时从远端服务器获取请求
Cookie和Session
Cookie和Session是由于HTTP无状态特性延申出来的一种用来维持会话状态的会话跟踪技术。
Cookie实际上是一小段的文本信息。客户端请求服务器,如果需要服务器记录该用户状态,那么服务器就向客户端浏览器颁发一个Cookie。
客户端会把收到的Cookie保存起来,当浏览器再次请求该网站时,浏览器把请求的网站联通该Cookie一同提交给服务器,服务器会检查Cookie,以此判断用户状态。
注意:Cookie是具有时效性的,比较Cookie更长一些
伪协议:javascript:alert(document.cookie)

Session
Session是另一种记录客户端状态的机制,保存在服务器上,客户端访问服务器的时候服务端把客户端信息以某种方式,记录在服务器上。
客户端浏览器再次访问时,只需要从该Session中查找客户端的状态就可以了
特点
Session ID是在服务端中唯一的
自动注销:session超时失败,服务器为了防止缓冲区溢出,服务器会把超时的客户端删除
Session ID保存方式
Cookie保存
URL重写,也就是把session ID附加在url路径后面
隐藏表单,服务器自动修改表单,添加一个隐藏字段,以便表单将Session传到服务器
Snipaste_2021-01-19_10-52-42.png
Cookie与Session的区别
存放位置不同,Cookie存储在客户端,Session存储在服务端
安全性不同
有效期不同 ,Cookie会长于Session
对服务器压力不同
网站是指在因特网上根据一定的规则,使用HTML(标准通用标记语言下的一个应用)等工具制作的用于展示特定内容相关网页的集合。
根据网站所用编程语言分类:例如asp网站、php网站、jsp网站、Asp.net(Aspx)网站等;
根据网站的用途分类:例如门户网站(综合网站)、行业网站、娱乐网站等;
根据网站的功能分类:例如单一网站(企业网站)、多功能网站(网络商城)等等;
根据网站的持有者分类:例如个人网站、商业网站、政府网站、教育网站等。
根据网站的商业目的分类:盈利性网站(行业网站、论坛)、非营利性网站(企业网站、政府网站、教育网站)
域名(Domain Name):简称域名、网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)
PS:域名会被解析到一个唯一的公网IP地址上,当然通过IP也是可以去对网站进行访问。
常见网站空间:虚拟主机(虚拟空间),独立服务器,云主机,VPS
虚拟主机:是在网络服务器上划分出一定的磁盘空间供用户防止站点、应用组件等;提供必要的站点功能、数据存放和传输功能。所谓虚拟主机,也叫“网站空间”,就是把一台运行在互联网上的服务器划分成多个“虚拟”的服务器。每一个虚拟主机都具有独立的域名和完整的Internet服务器功能。
云主机/vps:云主机又称为云计算服务器或云服务器,是云计算服务体系中的一项主机产品。云主机是一种类似VPS服务器的虚拟化技术。也可以理解为VPS的升级版,与VPS还有所不同的是,它是在一组集群服务器划分出来的多个类似独立主机的部分。
Web容器
web容器就是一种服务程序,在服务器中一个端口就对应一个提供相应服务的程序(比如Apache默认的端口为80),而这个程序就是处理服务器从客户端收到的请求,如Java中Tomcat容器,ASP的IIS都是这样的容器。一个服务器可以有多个容器
常见的Web容器:IIS、Apache、Nginx、Tomcat、Jboss、WebLogic
脚本语言是一种Web端的网页源代码。它又分为静态和动态脚本
静态:不与数据库发生交互,包括html、html5、shtml
动态:与数据库进行交互来获取、存储数据,包括asp、aspx、php、jsp等
数据库是存放数据库的仓库。它的存储空间很大,可以存放百万条,千万条,上亿条数据,但是数据库是随意地将数据进行存放,是有一定规则的,否则查询的效率会很低
常见的数据库(关系型):Access数据库:小型数据库,性能低,安全性低,无需登录账号密码
Sqlserver数据库:轻量级中小型,也叫mssql数据库,微软的数据库,需要登录账户密码,最高权限管理员名称:sa
Mysql数据库:轻量级,需要账户密码,被Oracle收购了,最高权限管理员名称:root
常见的关系型数据库:Oracle、DB2Oracle数据库:属于甲骨文公司,大型数据库,可以建立很多数据库,最高权限管理员名称:sys、Mysql、SQL、Server、Access、PostS
服务器是一种高性能计算机,某方面其性能是普通计算机的几倍甚至更多,他作为网络节点,提供文件存储等服务,提供客户端数据等服务,是互联网的灵魂
常见的服务器
windows server 2003报错 白底小字体 少量的红字
windows server 2008报错 蓝底黑字
windows:Windows server2000 IIS6.0
Windows server2003 IIS7.0
Windows server2008 IIS7.0/7.5
Windows server2012 IIS8.0
Windows server2016 IIS8.5
Windows server2003 IIS10.0
Linux:      Ubuntu
Red Hat Enterprise Linux(RHEL)
SUSE Linux Enterpries Server
CentOS(Community OS)Linux Server
Debian
推荐:
Access+asp/aspx+IIS+Windows
Sqlserver(mssql)+asp/aspx+IIS+Windows
Mysql+php/jsp+Apache+Linux/Windows
Oracle+jsp+Tomcat+Linux/Windows
PS:数据库与脚本、系统、并非绑定关系,只是出于性能而已的配置,另外还要注意Windows对大小写不敏感,而Linux对大小写敏感
SELinux 主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)
/admin/index.asp 
/admin/login.asp 
/admin/admin_login.asp 
/manage/index.asp 
/manage/login.asp 
/manage/admin_login.asp 
/admin/index.aspx
/admin/login.aspx
/admin/admin_login.aspx
/manage/index.aspx
/manage/login.aspx
/manage/admin_login.aspx
/admin/index.php
/admin/login.php
/admin/admin_login.php 
/manage/index.php 
/manage/login.php 
/manage/admin_login.php 
/user.asp
/manager/login
/manager/login.asp
/manager/admin.asp
/member/admin.asp
/member/login.asp


返回列表

上一篇:0x00-windows基础

下一篇:状态码

相关文章

0x00-windows基础

0x00-windows基础

服务,端口,协议关系:服务对应端口,协议是沟通的桥梁。常见的计算机服务www服务          web服务DHCP服务        路由分发TELNET服...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。