HTML学习---HTTP基础学习详解
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.com10.静态网页的特征:
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.21.PHP:动态网页语言PHP程序 ->配合apache解析
2.TOMCAT:中小企业动态web服务,互联网Java容器
3.RESIN:世界上最快的WEB服务,java程序的解析器
HTML学习---HTTP基础学习详解的更多相关文章
- [深入学习Web安全](5)详解MySQL注射
[深入学习Web安全](5)详解MySQL注射 0x00 目录 0x00 目录 0x01 MySQL注射的简单介绍 0x02 对于information_schema库的研究 0x03 注射第一步—— ...
- [转帖]Docker学习之Dockerfile命令详解
Docker学习之Dockerfile命令详解 https://it.baiked.com/system/docker/2436.html 图挺好的 前言 之前,制作镜像的伪姿势搭建已经见过了,今天介 ...
- Shell学习之Bash变量详解(二)
Shell学习之Bash变量详解 目录 Bash变量 Bash变量注意点 用户自定义变量 环境变量 位置参数变量 预定义变量 Bash变量 用户自定义变量:在Bash中由用户定义的变量. 环境变量:这 ...
- Asp.Net MVC学习总结之过滤器详解(转载)
来源:http://www.php.cn/csharp-article-359736.html 一.过滤器简介 1.1.理解什么是过滤器 1.过滤器(Filters)就是向请求处理管道中注入额外的 ...
- Linux学习之用户配置文件详解(十四)
Linux学习之用户配置文件详解 目录 用户信息文件/etc/password 影子文件/etc/shadow 组信息文件/etc/group 组密码文件/etc/gshadow 用户信息文件/etc ...
- [转载]springmvc学习之@ModelAttribute运用详解
spring学习之@ModelAttribute运用详解 链接
- expect学习笔记及实例详解【转】
1. expect是基于tcl演变而来的,所以很多语法和tcl类似,基本的语法如下所示:1.1 首行加上/usr/bin/expect1.2 spawn: 后面加上需要执行的shell命令,比如说sp ...
- Android 布局学习之——Layout(布局)详解二(常见布局和布局参数)
[Android布局学习系列] 1.Android 布局学习之——Layout(布局)详解一 2.Android 布局学习之——Layout(布局)详解二(常见布局和布局参数) 3.And ...
- Activiti工作流学习之流程图应用详解
Activiti工作流学习之流程图应用详解 1.目的 了解Activiti工作流是怎样应用流程图的. 2.环境准备2.1.相关软件及版本 jdk版本:Jdk1.7及以上 IDE:eclipse ...
- I2C 基础原理详解
今天来学习下I2C通信~ I2C(Inter-Intergrated Circuit)指的是 IC(Intergrated Circuit)之间的(Inter) 通信方式.如上图所以有很多的周边设备都 ...
随机推荐
- 几种流行的开源WebService框架Axis1,Axis2,Xfire,CXF,JWS比较
几种流行的开源WebService框架Axis1,Axis2,Xfire,CXF,JWS比较 来源 XFire VS Axis XFire是与Axis2 并列的新一代WebService平台.之所 ...
- AbstractQueuedSynchronizer,ReentraLock部分代码分析
/* * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * ...
- Kubernetes是什么
目录 简介 主要概念: 总体结构 参考 Kubernetes概念 简介 kubernetes是一个Google开源的容器编排系统,用于自动部署,扩展和管理容器化应用程序. 随处运行:支持公有云,私有云 ...
- $emit子组件传出多个参数,如何在父组件中在接收所有参数的同时添加自定义参数
很多时候用$emit携带参数传出事件,并且又需要在父组件中使用自定义参数时,这时我们就无法接受到子组件传出的参数了. 找到了两种方法可以同时添加自定义参数的方法. 方法一:子组件传出单个参数时 ...
- Android studio应用导入源码错误This attribute must be localized
This attribute must be localized 产生原因: 多语言错误,源码中关于语言的显示不能直接赋值,而是需要通过xml来实现: 例如 <TextView android: ...
- [转]SAPUI5 (01) - OpenUI5环境搭建
本文转自:http://blog.csdn.net/stone0823/article/details/53750094 版权声明:本文为博主原创文章,转载请注明出处:http://blog.csdn ...
- [转]C#中Timer使用及解决重入问题
本文转自:http://www.cnblogs.com/hdkn235/archive/2014/12/27/4187925.html ★前言 打开久违的Live Writer,又已经好久没写博客了, ...
- Python——爬虫学习1
爬虫了解一下 网络爬虫(Web crawler),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本. Python的安装 本篇教程采用Python3 来写,所以你需要给你的电脑装上Python ...
- Java - 复合模式优于继承
继承是实现代码重用的方法之一,但使用不当则会导致诸多问题. 继承会破坏封装性,对一个具体类进行跨包访问级别的继承很危险. 即,子类依赖父类的实现细节. 如果父类的实现细节发生变化,子类则可能遭到破坏. ...
- IDEA搭建普通java项目
初始化配置: 第一步: