一、HTTP
HTTP(HyperText Transfer Protocol,超文本传输协议)
1.特点
-
支持客户/服务器模式:
-
简单快速:
只需输入请求方法(常用的有GET&POST&HEAD)和路径。
-
灵活:
允许传输任意类型的数据,使用Content-Type加以标记。
-
无连接:
无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
-
无状态:
HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
2.报文结构
-
请求报文头结构:
-
响应报文头结构:
3.请求/响应步骤
-
客户端连接到服务器
-
发送HTTP请求
-
服务器接受请求并返回HTTP响应
-
释放TCP连接:
若连接模式为keep-alive,则该连接可保持一段时间 ,在该时间内科继续接收请求。
-
客户端浏览器解析响应内容
4.在浏览器地址栏键入URL,按下回车键经历的流程
- DNS解析
- 建立TCP连接
- 发送HTTP请求
- 服务器接收请求并响应
- 浏览器解析渲染页面
- 释放连接
5.响应状态码
点击: HTTP状态码详解
6.GET和POST请求区别
区别点 | GET | POST |
---|---|---|
请求信息 | URL中[key, val]格式 | 报文体中 |
幂等性 | 符合 | 不符合 |
可被浏览器缓存? | 可以 | 不可以 |
安全(相对而言) | 较不安全 | 较安全 |
HTTP传输的安全性得靠应用层数据加密或者HTTPS实现。
7.Cookie和Session的区别
-
Cookie:
在网站中,http请求是无状态的。也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户。cookie的出现就是为了解决这个问题,第一次登录后服务器返回一些数据(cookie)给浏览器,然后浏览器保存在本地,当该用户发送第二次请求的时候,就会自动的把上次请求存储的cookie数据自动的携带给服务器,服务器通过浏览器携带的数据就能判断当前用户是哪个了。cookie存储的数据量有限,不同的浏览器有不同的存储大小,但一般不超过4KB。因此使用cookie只能存储一些小量的数据。
-
Session:
session和cookie的作用有点类似,都是为了存储用户相关的信息。不同的是,cookie是存储在本地浏览器,而session存储在服务器。存储在服务器的数据会更加的安全,不容易被窃取。但存储在服务器也有一定的弊端,就是会占用服务器的资源,但现在服务器已经发展至今,存储少量session信息还是绰绰有余的。
-
Cookie和Session的结合:
(1)存储在服务端:通过cookie存储一个session_id,然后具体的数据则是保存在session中。如果用户已经登录,则服务器会在cookie中保存一个session_id,下次再次请求的时候,会把该session_id携带上来,服务器根据session_id在session库中获取用户的session数据。就能知道该用户到底是谁,以及之前保存的一些状态信息。这种专业术语叫做server side session。
(2)将session数据加密,然后存储在cookie中。这种专业术语叫做client side session。
二、HTTPS
HTTPS(Hypertext Transfer Protocol Secure,超文本传输安全协议)
1.为什么需要HTTPS
超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。
为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
HTTPS和HTTP的区别主要为以下四点:
- https协议需要到ca申请证书,一般免费证书很少,需要交费。
- http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
- http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
- http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
2.HTTPS原理
短视频:
2.SSL单向认证和双向认证
摘自文章:SSL单向认证和双向认证