web基础与HTTP协议

目录

一、DNS

二、域名

三、web基础

四、HTTP

五、总结

 

 

 

 

 

 

 

 

摘要:简单叙述web基础,网页的概念,域名解析,域名结构,HTML超文本传输语言,cookie和session扩展

 

一、DNS   

  1.DNS概念

      内网和外网无法通信,为了内网可以和外网通信,dns技术解决问题,可以将公网和私网互相通信。

  

     2.DNS类型

        正向解析:将域名解析为IP地址。

        反向解析:将IP地址转换为域名地址。

 

     3.DNS解析方式

        (1) 快速解析文件/etc/hosts

            linux系统中负责快速解析的文件,包含了ip与主机名的映射关系,在没有DNS服务器的情况下,使用本地/etc/hosts完成解析/映射,实现快速访问

          优先级最高。

            主要用于主机之间(IP和主机名)的映射/解析关系

        (2)DNS客户端配置文件/etc/resolv.conf

            DNS客户端配置文件,主要用于设置DNS服务器的IP和域名,还包含了主机域名的搜索顺序等等,这个文件是由域名解析器使用的配置文件。

            主要用与匹配DNS服务器

         (3) 网卡配置文件/etc/sysconfig/network-scripts/ifcfg-ens33

              可以在网卡配置文件中定义DNS1,DNS2

  

            生效顺序 1 hosts文件 2 网卡配置文件 3 /etc/resolv.conf

 

二、域名

  1.域名概念

      网络是基于 TCP/IP 协议进行通信和连接的,每一台主机都有一个唯一的标识(固定的 IP 地址),用以区别在网络上成千上万个用户和计算机。

    为了保证网络上每台计算机的 IP 地址的唯 一性,用户必须向特定机构申请注册,分配 IP 地址

    2.域名分配

      为了保证地址唯一性,用户协议向特地给机构申请注册,分配IP地址网络中的地址

      两套方案: ① IP地址系统 ② 域名地址系统

 

    (1)面试例子

        阿里云域名申请(未申请成功不可使用,会被封)

        1.准备材料

        2.查看并申请域名

        3.付款  

        4.备案

 

三、web基础

    1.web概念

        (1)网页

           纯文本格式文件 编写语言为HTML,在用户的浏览器中被“翻译”成网页形式显示出来。

        (2)网站

           由多个页面构成的,每个网页之间互相连接,通过超链接方式连接。

        (3)域名

          浏览网页时输入的网址,例如:www.baidu.com

        (4)HTTP/HTTPS

          HTTP是传输网页的通信协议,而HTTPS是安全传输的通信协议

           

         (5)URL

          万维网使用统一资源定位符来标志万维网上的各种文档,并使每个文档在整个因特网的范围内具有唯一的标识符URL。

             

         (6)HTML

          编写网页的语言,使用HTML超文本标记语言

         (7)超链接

            将多个网页连接起来,可以互相切换,可以指定各种网页,只需加入url地址

          (8)发布

            将制作好的网页上传到服务器供用户访问的过程,部署上云端,申请域名与IP地址映射,方便用户访问。

    

   2.Web版本    

      (1)Web1.0

          以编辑为特征,网站提供给用户的内容是编辑处理后的,然后用户阅读网站提供的内容 这个过程是网站到用户的单向行为

      (2)Web2.0

           更注重用户的交互作用,用户既是网站内容的消费者(浏览者),也是网站内容的制造者 加强了网站与用户之间的互动,

             网站内容基于用户提供,网站的诸多功能也由用户参与建设,实现了网站与用户双向的交流与参与

          Web2.0特征 用户分享、以兴趣为聚合点的社群、开放的平台,活跃的用户

    

   3.静态页面 与动态页面

      (1)静态页面

            使用HTML编写,是简单的单向输出的展示型网站,功能少无法交互,没有数据库作为支撑。

            每个静态网页都有一个url,而且url没有?,因为没有数据库,更新数据很麻烦,静态网页每个网页

            都是单独存在,内容稳定,方便搜索,没有交互浏览速度快,开启速度快。

          

       (2)动态网页

            动态网页url不是固定的,可以进行交互,功能比较多,例如登录注册基础功能,而且url中由?是动态页面的标识符

            更新数据快,维护简单,会生成不同文件。  

 

 

四、HTTP

   1.HTTP概念

      HTTP超文本传输协议是互联网上应用最为广泛的一种网络协议,它是基于TCP协议的应用层传输协议,简单来说就是客户端和服务端进行数据传输的一种规则。

   2.HTTP版本

      (1)HTTP 0.9

        1991,原型版本,功能简陋,只有一个命令GET,只能回应HTML格式,已被淘汰。

       (2)HTTP 1.0

        每个TCP连接只能发送一个请求,发送数据完毕,连接就关闭,如果还要请求其他资源,就必须再新建 一个连接引入了POST命令和HEAD命令头信息

        是 ASCII 码,后面数据可为任何格式。服务器回应时会告诉客户端,数据是什么格式。

      (3)HTTP 1.1

        持久连接,即TCP连接默认不关闭,可以被多个请求复用,不用声明Connection: keep-alive。对于同一个域名,大多数浏览器允许同时建立6

        个持久连接引入了管道机制,即在同一个TCP连接里,客户端可以同时发送多个请求,进一步改进了HTTP协议的效率

   3.HTTP1.0和HTTP1.l之间的区别 

        (1) 缓存处理

            在HTTP1.0中主要使用header里的If-Modified-Since,Expires来做为缓存判断的标准,HTTP1.1则引入了更多的缓存控制策略

            例如Entitytag,If-Unmodified-Since,If-Match,If-None-Match等更多可供选择的缓存头来控制缓存策略。

        (2)带宽优化及网络连接的使用

            HTTP1.0中,存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了,

            并且不支持断点续传功能,HTTP1.1则在请求头引入了range头域,它允许只请求资源的某个部分,即返回码是206 (Partial Content) ,

            这样就方便了开发者自由的选择以便于充分利用带宽和连接

         (3)错误通知的管理

            在HTTP1.1中新增了24个错误状态响应码,如409 (Conflict)表示请求的资源与资源的当前状态发生冲突;410(Gone)表示

            服务器上的某个资源被永久性的删除

         (4)Host头处理

            在HTTP1.0中认为每台服务器都绑定一个唯一的IP地址,因此,请求消息中的RZ并没有传递主机名(hostname)。但随着虚拟主机技术的发展,

            在一台物理服务器上可以存在多个虚拟主机(Multi-homed web Servers),并且它们共享一个Ie地址。

            HTTP1.1的请求消息和响应消息都应支持

            Host头域,且请求消息中如果没有inost头域会报告一个错误(400 Bad Request )

         (5)长连接

            HTTP1.1支持长连接〈PersistentConnection)和请求的流水线(Pipelining)处理,在一个TCP连接上可以传送多个HTT请求和响应,

            减少了建立和关闭连接的消耗和延迟,在HTTP1.1中默认开启connection:keep-alive,一定程度上弥补了HTTP1.0每次请求都要创建连接的缺点

     4.HTTPS 协议

          (1)HTTPS

              就是安全版的HTTP,目前大型网站基本实现全站解决安全问题

          (2)HTTPS特点

              HTTP和HTTPS使用的是不同的连接方式,端口不同,前者是80,后者是443

              HTTPS可以有效的防止运营商劫持,解决了防劫持的一个大问题

              HTTPS 实现过程降低用户访问速度,但经过合理优化和部署,HTTPS 对速度的影响还是可以接受的

              HTTP协议运行在TCP之上,所有传输的内容都是明文,HTTPS运行在SSL/TLS之上,SSL/TLS运行 在TCP之上,所有传输的内容都经过加密的

              HTTPS协议需要到CA申请证书,一般免费证书很少,需要交费

 

     5.HTTP 请求格式

         (1)GET 方式

               请求行 请求的方式 请求的资源路径 请求的版本协议号

              请求头(描述信息/标准化信息)

                 Accept:客户端可以接受的数据类型 Accept-Language:客户端可以接受的语言类型

                User-Agent:浏览器的信息 Accpect-Encoding:客户端可以接受的编码格式

                Host:表示请求的ip和端口号 Connection:告诉服务器请求连接如何处理

                Keep-Alive:通知服务器回传数据不要马上关闭,保持一小段的连接 Closed:马上关闭

         (2)POST 请求方式

               请求行 请求的方式 请求的资源路径 请求的协议的版本号

               请求头

                Accept:客户端可以接受的数据类型 Accept-Language:客户端可以接受的语言类型

                Referer:表示请求发起时,浏览器地址栏中的地址 User-Agent:浏览器的信息

                Content-Type:发送的数据类型 Content-Length:发送的数据长度

              请求体:就是发送给服务器的数据

      6.GET 与POST 区别

         (1)语义上的区别

               Get向服务器请求数据,依照HTTP协议,get 是用来请求数据。

               Post向服务器发数据,依照HTTP协议,Post的语义是向服务器添加数据,也就是说按照Post的语义,该操作是会修改服务器上的数据

         (2)服务器请求的区别

              Get请求是可以被缓存,示例: 访问百度,访问的方式就是GET,此时访问后的内容会缓被存在浏览器中,短时间再次访问,

                其实是拿到的浏览器中的缓存内容 另外Get请求只能接收ASCII码的回复

               Post请求是不可以被缓存的。对于Post方式提交表单,刷新页面浏览器会弹出提示框“是否重新提交表单”,

                Post可以接收二进制等各种数据形式,所以如果要上传文件一般用Post请求

         (3)参数放请求头和请求体的差别

              Get请求通常没有请求体(当然这也是可以由程序猿心情改变的),在TCP传输中只需传输一次(而不是一个包), 所以Get请求效率相对高。

               Post请求将数据放在请求体中,而实际传输中,会先传输完请求头,再传输请求体,是分为两次传输的(而不是两个包)。

                Post请求头会比Get更小(一般不带参数),请求头更容易在一个TCP包中完成传输,更何况请求头中有Content-Length的标识,

                可以更好地保证Http包的完整性。

      

     7.HTTP状态码

          (1)正常状态码和异常状态码

              当使用浏览器访问某一个URL,会根据处理情况返回相应的处理状态 通常正常的状态码为2xx,3xx(如200)

               如果出现异常会返回4xx,5xx(如404)

          (2)状态码

              状态码首位     已定义范围   分类

               1xx      100-101    信息提示

               2xx         200-206    成功

               3xx      300-305    重定向

               4xx      400-415   客户端错误

               5xx        500-505   服务器错误

          (3)生产环境常见的HTTP状态码

              消息        描述

              200          OK     请求成功(其后是对GET和POST请求的应答文档)

                 301     Moved Permanently 请求的永久页面跳转

              403       Forbidden   禁止访问该页面

              404       Not Found   服务器无法找到被请求的页面

              500     Internal Server Error  内部服务器错误

              502     Bad Gateway     无效网关

              503      Service Unavailable   当前服务不可用

              504      Gateway Timeout   网关请求超时

 

      8.HTTP协议请求流程

           过程:用户输入URL客户端获取到端口及主机名后,客户端利用DNS解析域名,首先客户端的浏览器会先找自身的缓存,如果有解析结束,如果没有客户端    ·             会去找host文件,如果host文件没有的话,客户端会去找本地的DNS缓存服务器,本地的DNS缓存服务器没有的话,缓存服务器会去找根域,根域                         没有,会返回一个.com.然后本地缓存服务器会去找顶级域,顶级域没有的话会返回baidu.com.,然后本地缓存服务器会去找二级域,二级域解析完                    后会返回客户端。

              客户端解析到IP地址后会通过TCP的三次握手与服务器建立连接

      9.HTTP状态

          (1)无状态

              当网页的内容没有改变,那么就是无状态,例子:今天写了一个100内加减的shell脚本,第二天还是100内加减的shell脚本。

          (2)有状态

              当网页的内容有所改变,那么就是有状态,例子:今天写了100内加减的shell脚本,第二天又写了一遍,然后又写了500以内加减法。

     

      10.cookie和session扩展

          (1)功能

              cookie和session都为了实现的是http的短期的持久化(内存/缓存方式,查询快、效率比较高)cookie 是缓存在用户端(client)浏览器中的(默认缓存一                     天),当下次客户端通过同一个浏览器访问客户端的时候,会优先读取cookie中的缓存信息,向服务端进行请求,同时服务端收到客户端请求的时                候,读取到cookie文件,知道客户端之前找的是服务器A处理的任务,为了省事儿,省资源,干脆直接讲请求直接再交给服务器A处理 

            (2)区别

                cookie 省服务器性能 session 更安全,为后面服务、集群、功能优化做铺垫,具体解释了怎么解决HTTP无状态协议的持久化/存储。

                cookie是再客户端,seesion是在服务端

 

  

五、总结

       web基础可以分为网页和网站,网页是组成网站的基础。HTML超文本标记语言是编写网页的语言,现如今使用的是HTML1.0和2.0,网页则使用静态网页和动态网页的结合。现如今使用DNS解析地址,让公网和私网可以通信,当网页可以解析,状态码可以反应出相应的状态。

热门相关:亿万盛宠只为你   淫乱的分享之家   梦回大明春   朕是红颜祸水   交易校园情侣