HTTP和HTTPS

HTTP介绍

HTTP协议
  1. HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。
    HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。
  2. 衍生请求和子请求(除了该网页的其他内容包括图片视频等)
  3. C/S架构和B/S的区别
    1. c/s架构:1.很灵活,配置方便 2. 性能更佳(其中访问资源在本地有一部分数据库和静态文件,在服务端也有数据库,性能比高,数据下载没有b/s架构压力大)
    2. b/s:浏览器-服务端架构:属于c/s的一种;1. 迭代方便 更新—只涉及到服务端的更新 2. 兼容性强(无系统差异 ) 3. 更加主动性,服务端更加主动,在安全性能方面更新
  4. HTTP的三点注意事项
    1. - HTTP是无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
    2. - HTTP是媒体独立的:这意味着,只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。
    3. - HTTP是无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
网站访问流程

①客户端 通过浏览器输入网址信息点击回车
②先通过DNS完成域名的解析过程
③客户端 直接访问相应的网站服务器 建立三次握手过程
④客户端访问网站服务器 发送HTTP请求报文 (多次)
⑤服务端响应客户端的请求 回复HTTP响应报文 (多次)
⑥客户端浏览器看到网站页面
⑦客户端结束访问网站过程 完成TCP四次挥手过程

HTTP协议请求和响应
HTTP请求报文
  1. 请求行
    请求方法:GET–读/看 POST --写/提交
    请求信息:Accept (匹配什么文件类型,"*"是通用匹配,匹配所有类型)
    请求的协议:http1.1
    其中
    ( HTTP: 1.0 TCP短连接
    HTTP: 1.1 TCP长连接
    HTTP: 2.0 TCP长连接优化 提高用户并发(同时)访问的效率 )

  2. 请求头: 请求的主机信息

  3. 空行

  4. 请求体
    1)若使用get方法没有请求主体信息
    2)使用post方法有请求主体内容

HTTP响应报文
  1. 起始行
    状态码信息
  2. 响应头部 :消息报头
  3. 空行
  4. 响应主体
HTTP协议资源信息
1. URL : 统一资源定位符 (域名+URI),在整个互联网是唯一的
2. URI:统一资源标识符(在一个网站内是唯一的)
=========================================
3. 静态资源:(要什么给什么),jpg.html.text.video...
   特点:
    1)网页内容是固定不变的,因此,容易被搜索引擎收录(容易被用户找到)(优点)。
	2)  因为网页没有数据库的支持,所以在网站制作和维护方面的工作量较大,当网站信息量很大时,
	    完全依靠静态网页比较困难(缺点)。
    3)  网页的交互性较差,在程序的功能实现方面有较大的限制(缺点)。
	4)  当客户端向服务器请求数据时,服务器会直接从磁盘文件系统上返回数据(不做任何解析)。
4. 动态资源:(与后台数据库进行交互--由web中间件完成)
    进行CPU逻辑计算,需要进行查询数据库进行解析后发送给客户端
    1) 采用动态网页技术的网站可以实现更多的功能,如用户注册、用户登录、在线调查、投票、用户管理、订单处理、发博文等。
	2) 动态资源页面会出现 "?" "&", 不便于被搜索引擎收录(存在安全问题sql注入)
	3) 接收到用户请求,需要让动态服务和数据库服务进行处理
5. 伪静态资源(动态页面) ---使用资源重写的方式
	1. 可以便于搜索引擎进行收录
	2. 有数据库服务支持,实现网页交互功能
评测网站好坏的指标
> 1.  IP: 根据用户IP地址数量进行统计 (300万~400万)
    局域网多个用户访问:  网站服务器只记录一个IP访问            使用了NAT技术
    断电了家用电脑会重新拨号: wan--公网地址
> 2. PV: 页面访问量       700万~800万
> 3. UV: 记录独立访客数量
> 4. cookie:  标识用户身份信息, 会保存在用户客户端本地                     内存中
    session: 记录用户的一些会话操作, eg: 记录用户登录信息  记录在服务端  	内存中 (当用户进行第二次访问请求的时候,服务端首先会校验session本地和客户端的session值是否一样,若不一样则重新访问)
状态码
1. (1 * *) : 信息,服务器收到请求,需要请求者继续执行操作
2. (2**): 成功,操作被成功接收并处理
   200 :请求成功,用于get或post请求
3. (3 **):重定向,需要进行进一步的操作来完成请求
   301:永久移动,请求的资源已被永久移动到新的URI,返回信息会返回新的URI,浏览器会自动定向到新的URI,今后新的请求都会使用新的URI替代 (会将跳转信息进行缓存)
   302:临时移动,客户端会继续使用原有的URI(不会缓存跳转信息)
  304:客户端访问到本地的缓存,没有重新访问到服务器,若有重新请求则过了缓存时间或者服务端被修改也会被重新请求
  307:临时重定向,与302类似,使用get请求重定向
 4. (4**):客户端错误,请求包含语法错误或无法完成请求
   400:客户端请求的语法错误,服务器无法理解
   401:请求要求用户的身份认证(认证时用户密码错误也会报改错)
   403:服务端理解请求客户端的请求,但是拒绝执行此请求(服务端未指定请求URI默认文件) --若是网站根目录底下找不到该默认页面,则会出现404错误!
   404:服务端无法根据客户端的请求找到资源
 5. (5**): 服务器错误,服务器在处理请求的过程中发生了错误 
   500:服务器内部错误,无法完成请求,后端(1.内部程序代码编写有问题 2.程序服务中文件权限不正确)
   501:服务器不支持请求的功能,无法完成请求
   502:bad gateway(作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应) --后端超时,连接不上
   503:serveice unavailable(由于超载或系统维护服务器暂时无法处理客户端请求,延时的长度可包含在服务器的retry-after头信息中) --- 请求太频繁!
   504:gateway timeout(充当网关或者代理的服务器未及时从远端服务器获取请求)
   505:服务器不支持请求的HTTP协议的版本,无法完成处理

HTTPS介绍

HTTPS原理
1. HTTPS称为:HTTP+SSL/TLS(即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容需要SSL用于安全的HTTP数据传输)
其中数据通过HTTP应用层向下经过SSL安全套接字层,再又发送给传输层
2. SSL(安全套接字层),位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持
  TLS(传输层安全) 
HTTPS由来
1)历程1: 用对称加密信息传输 (使用相同的密钥)
缺点:不同的客户端服务端数量庞大,所以对方都需要维护大量的密钥,维护成本高!因客户端和服务器的安全级别不同造成密钥容易泄露
2)历程2:使用非对称加密传输信息(客户端使用公钥对请求内容加密,服务器使用私钥对内容解密)
缺点:公钥是公开的,(其他人也会获取到公钥,服务器发送用私钥进行加密的响应信息其他人也能获取到其中内容,造成不安全)
3)历程3:非对称加密算法进行连接,对称加密进行传输数据
问题:1)客户端如何获取公钥 2)如何确认服务器是真实的身份 无法确认公钥到底属于哪个私钥的
4)历程4:
服务端采用SSL证书证明服务器的真实身份,并分发公钥
#######################################
其中私钥只能用来解密(公钥加密的信息)
公钥只能用来解密(私钥加密的信息)
公钥不能解密(公钥加密的信息)
###私钥给公钥发送,所有公钥都可看到
###但是公钥发送,其他公钥看不见,只有私钥能看到!
#######################################
HTTPS缺点:
1. SSL 证书费用很高,以及其在服务器上的部署、更新维护非常繁琐
2. HTTPS 降低用户访问速度(多次握手)
3. 网站改用HTTPS 以后,由HTTP 跳转到 HTTPS 的方式增加了用户访问耗时(多数网站采用302跳转)
4. HTTPS 涉及到的安全算法会消耗 CPU 资源,需要增加大量机器(https访问过程需要加解密)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值