Web基础与HTTP协议

目录

一、web

1.web概述

2.web1.0 vs web2.0

3. 静态页面与动态页面

(1)静态页面定义

(2)静态页面特点

(3)动态页面

(4)动态页面特点

二、HTTP协议概述

1.HTTP协议简介、版本

2.HTTP1.0和HTTP1.1之间的区别

三、GET与POST区别 

四、HTTP状态码 


一、web

1.web概述

-web (world wide web)即全球广域网,也称为万维网一种分布式图形信息系统,建立在Internet上的一种网络服务

2.web1.0 vs web2.0

web1.0
以编辑为特征,网站提供给用户的内容是编辑处理后的,然后用户阅读网站提供的内容这个过程是网站到用户的单向行为(静态页面的概念)
web2.0
更注重用户的交互作用,用户既是网站内容的消费者(浏览者),也是网站内容的制造者加强了网站与用户之间的互动,网站内容基于用户提供,网站的诸多功能也由用户参与建设,实现了网站与用户双向的交流与参与
web2.0特征
用户分享、以兴趣为聚合点的社群、开放的平台,活跃的用户
 

3. 静态页面与动态页面

(1)静态页面定义

1、静态网页是标准的HTML
2、文件扩展名是.htm、 .html
例如文本、图像、声音、Flash动画、客户端脚本和Activex控件及Java小程序等
3、是网站建设的基础,早期网站一般都由静态网页制作
4、没有后台数据库、不含程序和不可交互的网页
5、相对更新起来比较麻烦,适用于一般更新较少的展示型网站

(2)静态页面特点

1、每个静态网页都有一个固定的URL,且UR以.htm、.html、.shtml等常见形式为后缀,而不含有"?"
2、网页内容一经发布到网站服务器上,无论是否有用户访问,每个静态网页都是保存在网站服务器上的
3、静态网页的内容相对稳定,容易被搜索引擎检索
4、静态网页没有数据库的支持,在网站制作和维护方面工作量较大,因此当网站信息量很大时完全依靠静态网页制作方式比较困难
5、静态网页的交互性较差,在功能方面有较大的限制
页面浏览速度迅速,过程无需连接数据库,开启页面速度快于动态页面

(3)动态页面

1、网页URL不固定,能通过后台与用户交互
2、在动态网页网址中有一个标志性的符号——"?"
3、常用的语言有PHP、JSP、Python、Ruby等

(4)动态页面特点

1、交互性
网页会根据用户的要求和选择而动态改变和响应,将浏览器作为客户端界面,这将是今后WEB发展的大势所趋
2、自动更新
无须手动地更新HTML文档,便会自动生成新的页面,可以大大节省工作量
3、因时因人而变
当不同的时间,不同的人访问同一网址时会产生不同的页面
不同的人:访问的用户的权限、身份
不同的时间:6月16日 9:00-10:00 商品促销 10:00 以后恢复正常
 

二、HTTP协议概述

1.HTTP协议简介、版本

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

HTTP/HTTPs是应用层上的协议,建立在传输层TCP之上,客户端通过与服务端进行TCP连接(三次手握),之后发送HTTP请求与接收HTTPI响应都是通过访问Socket接口来调用TCP协议实现。

HTTP 是一种无状态(stateless)协议,HTTP协议本身不会对发送过的请求和相应的通信状态进行持久化处理。这样做的目的是为了保持HTTP协议的简单性,从而能够快速处理大量的事务,提高效率。

然而,在许多应用场景中,我们需要保持用户登录的状态或记录用户购物车中的商品。由于HTTP是无状态协议,所以必须引入一些技术来记录管理状态,例如Cookie。

cookie是缓存在用户端(client)浏览器中的(默认缓存一天),当下次客户端通过同一个浏览器访问客户端的时候,会优先读取cookie中的缓存信息,向服务端进行请求,同时服务端收到客户端请求的时候,读取到cookie文件,知道客户端之前找的是服务器a处理的任务,为了省事儿,省资源,干脆直接讲请求直接再交给服务器A处理

cookie和session 都为了实现的是http的短期的持久化(内存/缓存方式,查询快、效率比较高)

两者对比
cookie省服务器性能
session更安全

HTTP协议的版本
HTTP 0.9已过时
HTTP 1.0
HTTP 1.1
HTTP 2.0
 

2.HTTP1.0和HTTP1.1之间的区别

缓存处理
在HTTP1.0中主要使用header里的If-Modified-Since , Expires来做为缓存判断的标准,HTT1.1则引入了更多的缓存控制策略例如Entitag,If-Unmodified-Since,If-Match,If-None-Match等更多可供选择的缓存头来控制缓存策略。

 带宽优化及网络连接的使用
HTTP1.0中,存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了,并且不支持断点续传功能,HTTP1.1则在请求头引入了range头域,它允许只请求资源的某个部分,即返回码是206 (PartialContent),这样就方便了开发者自由的选择以便于充分利用带宽和连接
 

错误通知的管理
在HTTP1.1中新增了24个错误状态响应码,如409(conflict)表示请求的资源与资源的当前状态发生冲突;;410(sone)表示服务器上的某个资源被永久性的删除

 Host头处理
( 400 Bad Rquest )

长连接
HTTP1.1支持长连接(PersistentConnection)和请求的流水线(Pipelining)处理,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟,在HTTP1.1中默认开启comnection: keep-alive,一定程度上弥补了HTTP1.0每次请求都要创建连接的缺点

三、GET与POST区别 

区别一:语义上的区别
Get向服务器请求数据,依照HTTP协议,get是用来请求数据。
Post向服务器发数据,依照HTTP协议,Post的语义是向服务器添加数据,也就是说按照Post的语义,该操作是会修改服务器上的数据

区别二:服务器请求的区别
Get请求是可以被缓存,示例:
访问百度,访问的方式就是cE,此时访问后的内容会缓被存在浏览器中,短时间再次访问,其实是拿到的浏览器中的缓存内容另外cet请求只能接收ASCII码的回复
Post请求是不可以被缓存的。对于Post方式提交表单,刷新页面浏览器会弹出提示框"是否重新提交表单",Post可以接收二进制等各种数据形式,所以如果要上传文件一般用Post请求

区别三:参数放请求头和请求体的差别
Get请求通常没有请求体(当然这也是可以由程序猿心情改变的),在TCP传输中只需传输一次(而不是一个包),所以Get请求效率相对高。
Post请求将数据放在请求体中,而实际传输中,会先传输完请求头,再传输请求体,是分为两次传输的(而不是两个包)。
Post请求头会比Get更小(一般不带参数),请求头更容易在一个TCP包中完成传输,更何况请求头中有Content-Llength的标识,可以更好地保证Http包的完整性。

四、HTTP状态码 

当时用浏览器访问一个URL,会根据处理情况返回相应的处理状态

状态码范围    含义
100-101                  信息提示
200-206                  成功
300-305                  重定向/页面跳转
400-415                  客户端错误
500-505                  服务器错误

 生产环境常见的HTTP状态码

消息    描述                                    含义
200    OK                                      请求成功(其后是对GET和POST请求的应答文档)
301    Moved Permanentl             请求的永久页面跳转
403    Forbidden                           禁止访问该页面
404    Not Found                           服务器无法找到被请求的页面
500    Internal Server Error           内部服务器错误
502    Bad Gateway                      无效网关
503    Service Unavailable            当前服务不可用
504    Gateway Timeout                网关请求超时 
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值