Http和Https

清明小长假结束了,菜鸟君趁着大家休息的时候仍旧没有放松哦,整理了一下关于Http协议的相关知识,^_^

一.为什么要用http协议?

http协议是浏览器与服务器进行数据传输的格式规范,底层走的是TCP/IP协议。属于应用层协议。

简单的说一下要用http的原因,可能会更深刻:

比如说我们现在有很多的浏览器:谷歌、IE、搜狐等等,那么显然服务器不可能针对每一款浏览器的请求都有一个对应的解析,就像

if(谷歌)

{......}

else if(搜狐)

{.......}

如果有一个新的浏览器被开发出来了,服务器端的代码就需要修改,这显然是不可能的!

同样的,服务器在返回响应的时候,不可能把每种浏览器能够识别的代码都返回去,让浏览器自己去挑符合自己的,这显然更是不可能的!

所以,浏览器和服务器之间在通信的时候就要做一种约定,这种约定规定了不论是什么浏览器都要使用统一的格式向服务器发送请求,服务器也返回统一格式的响应。这种格式上的约定就是http协议了。

http协议的着重点在格式规范上,而TCP/IP协议着重点在数据的正确传输上,当然了http协议的前提也是数据被正确传输,所以说http协议的底层就是TCP/IP协议。

二.http协议的两个版本及其区别:

http协议有1.0和1.1两个版本:

1.0版本:

在服务器和客户端建立连接之后只能就行一次请求,一次请求之后连接断开

1.1版本:

当连接建立之后可以进行多次请求。

所以1.1是目前经常被使用的版本,功能更强大。

三.http请求报文

通常一个http协议的请求报文分为(从上到下):请求头(一行)、请求行(若干行)、请求空行、实体内容(可选),下面做一个简单的介绍:

1.请求头:例如get /20170325/login.html http/1.1

首先大家可以看到,这就是一个请求头的样子了,从左向右以此是请求方式(get、post),请求资源(URI)和版本

1)请求方式分为get和post两种

get方式:

i.在地址栏中直接输入参数以?分隔,多个参数之间以&连接

ii.对要传输的数据大小有一定的限制,不能超过1kb

iii.不能传输敏感数据,不安全

post方式:

i.不能在地址栏中传参数

ii.对传输的参数的大小没有限制

iii.能够传输敏感数据

iv.传输的参数出现在请求报文的内容实体中

2)URL和URI

URL:统一资源定位符,只能够定位互联网资源,格式形如:http://localhost:8080/20170327/login.html

URI:统一资源标识符,能够定义任意的资源,包括本地资源、互联网资源、局域网资源等等,形如:/20170325/login.html

可以看出,给定一个URI可以将其改变成对应的URL,所以URL是URI的一个子集。

四:HTTPS

https是以安全为目的的http通道,可以说是http的安全版本,与http相比,https是ssl加密传输协议,而http则是明文传输,所以https更加安全。同时https协议需要到CA上申请证书,由于证书很少,所以一般都是收费的。另外https协议的端口号是443,而http协议是80。

五、顺便简单介绍一下SSL:

安全套接字,传输层协议,主要是保证网络安全和数据完整性。

六:三次握手

客户端和浏览器在进行通信的时候要经过三次握手建立连接,三次握手分别是:

第一次:建立连接时,客户端向浏览器发送一个SYN(同步序列号)包,并进入SYN_SEND状态。

第二次:服务器接收到SYN包,确认之后向客户端发送一个SYN包,即SYN+ACK包,服务器进入SYN_RECV状态

第三次:客户端接收到SYN+ACK包,向服务器发送确认包ACK,客户端和服务器端进入ESTABLISHED状态。

三次握手完成!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值