1.HTTP访问服务器原理

客户端输入IP->查找本地hosts缓存->有则直接用获取到的IP访问服务器->服务器响应后返回客户端->客户端页面显示
                                   ->无则访问本地的DNS服务器
                                           ->本地DNS有记录,则返回IP给客户端->->服务器响应后返回客户端->客户端页面显示
                                           ->本地DNS无记录->访问授权DNS(涉及DNS的解析->dig)->返回IP给客户端->->服务器响应后返回客户端->客户端页面显示

2.HTTP协议(超文本传输协议)

1.http最重要的应用服务www服务,涉及最初的目的是发布和接受HTML页面的方法。
  www:万维网,应用http协议
      http:80
      https:443
2.http1.0和http1.1的区别
    查看http:
        curl -I www.baidu.com
       HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力
    http1.0:使得包含http1.0包含图片的web页面和交互式表格称为可能
            http1.0规定浏览器和服务器只是保持短暂连接,每次的请求都需要根服务器做链接,完成后断开连接。
            服务器不跟踪每隔客户也不记录过去的请求。
    http1.1:修复了http的缺陷,从扩展性,缓存处理,带宽优化作了改进,增加了cache缓存,是使用最广泛的
            http1.1支持持久连接,在一个TCP连接上可以传送多个HTTP请求和响应,减少连接和关闭的延时
            http1.1增加了响应头,请求头增强了http请求       
3.HTTP请求方法
    在HTTP通信中,每隔HTTP请求都包含一个方法,用以告诉Web服务器端需要执行什么具体的操作,比如提交内容等
    GET :客户端指定资源,服务器端返回指定的资源
    POST:将客户端的数据提交到服务器
    PUT :从客户端向服务器传送的数据替代文档的内容
    DELETE:删除

3.1 http协议(应用层)的工作原理
     超文本传输协议(HTTP:Hypertext Transport Protocol)是万维网应用层的协议。
     它 通过两个程序实现:一个是客户端程序(各种浏览器),另一个是服务器 (常称Web服务器)。
     这两个通常运行在不同的主机上,通过交换报文来完成网页请求和响应。
    一次HTTP操作称为一个事务,其工作过程可分为四步:
     1)首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作开始。

2)建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。

3)服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
     4)客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。 如果在以上过程中的某一步出现错误,那么产生错误的信息将返回到客户端,有显示屏输出。对于用户来说,这些过程是由HTTP自己完成的,用户只要用鼠标点击,等待信息显示就可以了

4.HTTP的状态码(16个)
    200   ok
    301   重定向,永久跳转
    403   禁止访问,权限问题
    404   页面不存在
    500   服务器错误,不能完成客户请求。例如SELINUX开启
    502   网关错误    -->一般是代理请求后端,后端不响应导致
    503   服务不可用,服务器停机维护等情况
    504   网关超时,后端没有在指定的时间内完成请求,
          服务器过载导致没有在指定的时间内返回数据给代理服务器

5.Http报文(2种)
    请求报文
    响应报文

6.Http协议请求的流程    -->http原理
    1.客户端输入访问地址  www.baidu.com
    2.web浏览器将访问地址解析成服务器的IP地址    -->DNS解析原理
    3.浏览器将默认的端口号(80)从访问的url中解析出来
    4.根据 IP+端口,根服务器创建一条TCP的连接          -->3次握手
    5.建立连接之后,开始给服务器端发送http请求报文
    6.服务器响应并读取信息,开始访问门户网站,集群,solar,访问数据库
    7.返回响应报文给客户端
    8.WEB服务器关闭http连接,关闭tcp连接,WEB浏览器显示信息

7.HTTP访问的重要知识
    1.用户访问网站流程
    2.DNS解析流程细节
    3.建立TCP后发送http报文
    4.http的请求和响应报文细节
    5.WEB服务器请求集群存储的过程

8.HTTP协议的重要小结
    1.HTTP位于OSI的第七层(应用层)
    2.http协议的重要应用www
    3.用户上网流程,DNS解析原理
    4.DNS获取IP后建立TCP后发送http的细节
    5.HTTP的请求报文与响应报文
    6.HTTP服务接受请求后:nginx ->php ->数据库

9.HTTP资源
    1.媒体类型(MIME)  -->多用途英特网邮件扩展
        web服务器响应的时候,会为每一个http对象数据加一个MIME类型,用来区别文件的类型
    2.URL 统一资源定位符
        协议  IP(端口)      具体位置
        http:www.baidu.com/index.html
    3.RUI 统一资源标示符号
        URL是URI的子集
        标示某一互联网资源名称的字符串,这个字符串在全世界范围内唯一  623@qq.com

10.静态网页的特征:
    1.固定的URL地址
    2.每一个网页都是一个独立的文件,都是服务器实实在在保存的实体
    3.内容固定,易被搜索引擎收入
    4.没有数据库支持
    5.没有交互
    6.接受并发访问

11.动态网页
    1.php asp jsp
    2.网页一般是以数据库技术为基础,大大降低了网站的维护
    3.可以实现更多地功能,用户注册,登录
    4.并不是独立存在服务器的,单用户请求时,服务器解析程序并获取数据库返回一个完整的网页内容
     5.伪静态的数据处理,可以适应搜索引擎的抓取
     6.曾需在服务器端解析,会消耗大量的CPU,内存等资源。

12.伪静态的作用
    优点:1.搜索引擎的动态抓取   2.较好的用户体验
    缺点:1.会消耗资源,性能下降

13.生成web架构优化方案说明
    1.考虑将用户请求的数据解析后存成静态文件存放在磁盘或内存,降低动态服务器的压力,节约成本

14.CDN的全称是Content Delivery Network,即内容分发网络。
    其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快

3.网站流量度术语

1.IP
    独立IP指的是不同IP地址的计算机访问网站的被计算的总次数
2.PV-->page view
3.UV(Unique Visitor)  ->独立访客-->接近真实
    同一台客户端访问同一个网站一天之内被计算为一个访客
4.企业网站对PV/IP/UV的度量
    1.分析所有Web服务器的访问日志,对IP地址段进行去重
        awk '{print $1}' h.log|sort|uniq -c|sort -rn
    2.网站的结尾潜入一个js,利用js进行统计,写入数据库
    3.利用第三方的统计谷歌等
5.并发连接
    1.每秒能够接受的最大用户的请求数
    2.每秒能响应的最大用户数量
    3.单位时间内能够处理的的最大的连接数      -->推荐
    100台   -->的并发  IP量 百万  PV 500W-1000W/day
    10       -->5000    PV  20W
6.网站度量的面试题
    你们公司的访问量是多少?怎么计算?
        IP PV 并发量  3个点
        运维日志  JS访问程序   第三方统计/GA等
7.主流WEB服务
    1.apache:  中小型web服务,WEB的老大哥   -->主力2.2
    2.nginx:   大型网站的主流   -->更新速度快  目前1.6.2

1.PHP:动态网页语言PHP程序  ->配合apache解析
    2.TOMCAT:中小企业动态web服务,互联网Java容器
    3.RESIN:世界上最快的WEB服务,java程序的解析器

HTML学习---HTTP基础学习详解的更多相关文章

  1. [深入学习Web安全](5)详解MySQL注射

    [深入学习Web安全](5)详解MySQL注射 0x00 目录 0x00 目录 0x01 MySQL注射的简单介绍 0x02 对于information_schema库的研究 0x03 注射第一步—— ...

  2. [转帖]Docker学习之Dockerfile命令详解

    Docker学习之Dockerfile命令详解 https://it.baiked.com/system/docker/2436.html 图挺好的 前言 之前,制作镜像的伪姿势搭建已经见过了,今天介 ...

  3. Shell学习之Bash变量详解(二)

    Shell学习之Bash变量详解 目录 Bash变量 Bash变量注意点 用户自定义变量 环境变量 位置参数变量 预定义变量 Bash变量 用户自定义变量:在Bash中由用户定义的变量. 环境变量:这 ...

  4. Asp.Net MVC学习总结之过滤器详解(转载)

    来源:http://www.php.cn/csharp-article-359736.html   一.过滤器简介 1.1.理解什么是过滤器 1.过滤器(Filters)就是向请求处理管道中注入额外的 ...

  5. Linux学习之用户配置文件详解(十四)

    Linux学习之用户配置文件详解 目录 用户信息文件/etc/password 影子文件/etc/shadow 组信息文件/etc/group 组密码文件/etc/gshadow 用户信息文件/etc ...

  6. [转载]springmvc学习之@ModelAttribute运用详解

    spring学习之@ModelAttribute运用详解 链接

  7. expect学习笔记及实例详解【转】

    1. expect是基于tcl演变而来的,所以很多语法和tcl类似,基本的语法如下所示:1.1 首行加上/usr/bin/expect1.2 spawn: 后面加上需要执行的shell命令,比如说sp ...

  8. Android 布局学习之——Layout(布局)详解二(常见布局和布局参数)

    [Android布局学习系列]   1.Android 布局学习之——Layout(布局)详解一   2.Android 布局学习之——Layout(布局)详解二(常见布局和布局参数)   3.And ...

  9. Activiti工作流学习之流程图应用详解

    Activiti工作流学习之流程图应用详解 1.目的  了解Activiti工作流是怎样应用流程图的. 2.环境准备2.1.相关软件及版本    jdk版本:Jdk1.7及以上 IDE:eclipse ...

  10. I2C 基础原理详解

    今天来学习下I2C通信~ I2C(Inter-Intergrated Circuit)指的是 IC(Intergrated Circuit)之间的(Inter) 通信方式.如上图所以有很多的周边设备都 ...

随机推荐

  1. 数据库~Mysql派生表注意的几点~关于百万数据的慢查询问题

    基础概念 派生表是从SELECT语句返回的虚拟表.派生表类似于临时表,但是在SELECT语句中使用派生表比临时表简单得多,因为它不需要创建临时表的步骤. 术语:*派生表*和子查询通常可互换使用.当SE ...

  2. 2-6 js基础-ajax

    1.var oAjax=new XmlHttpRequest()//创建一个ajax对象,兼容非ie6 var oAjax=new ActiveXObject('Microsoft.XMLHTTP') ...

  3. [中英对照]INTEL与AT&T汇编语法对比

    本文首先对文章Intel and AT&T Syntax做一个中英文对照翻译,然后给出一个简单的例子,再用gdb反汇编后,对INTEL与AT&T的汇编语法进行对照从而加深理解. Int ...

  4. mysql修改root密码和对连接授权

    mysql修改root密码 首先 mysql -uroot -p 进入mysql界面后执行 set password for root@localhost = password('111111');  ...

  5. cppjieba分词学习笔记

    cppjieba分词包主要提供中文分词.关键词提取.词性标注三种功能 一.分词 cppjieba分词用的方法是最大概率分词(MP)和隐马尔科夫模型(HMM),以及将MP和HMM结合成的MixSegme ...

  6. Angular2 不明真相第一个Demo例子

    如果不是去年换工作接触到AngularJS,估计是不会花时间去学习这个框架的,毕竟是前端的框架,不是自己熟悉的领域.但是为了混得下去,去年就学习了AngularJS的一些用法,当时还整理了一些积累 & ...

  7. JS中的Map与Set

    Map Map是一组键值对的结构,具有极快的查找速度. 举个例子,假设要根据同学的名字查找对应的成绩,如果用Array实现,需要两个Array: var names = ['Michael', 'Bo ...

  8. MySQL---3、常用命令大全

    一.连接MySQL 格式: mysql -h主机地址 -u用户名 -p用户密码 1.例1:连接到本机上的MYSQL. 首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -ur ...

  9. 撩课-Java每天10道面试题第2天

    11.面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面, 以便更充分地注意与当前目标有关的方面. 抽象并不打算了解全部问题,而只是选择其中的一部分, 暂时不用部分细 ...

  10. jvm工具及命令大全

      虚拟机栈 栈桢大小缺省为1M,可用参数 –Xss调整大小,例如-Xss256k 堆 -Xms:堆的最小值: -Xmx:堆的最大值: -Xmn:新生代的大小: -XX:NewSize:新生代最小值: ...