3.HTTP

本文介绍了HTTP与HTTPS的区别,包括HTTPS的工作原理、HTTP的长连接与无状态特性。同时,详细阐述了Nginx配置HTTPS的步骤,并讨论了HTTP请求方法如GET和POST的差异,以及cookie和session在保持HTTP状态中的作用。
摘要由CSDN通过智能技术生成

1.HTTP和HTTPS协议

1.1 HTTP和HTTPS区别

协议httphttps
1超文本传输协议,信息是明文传输https则由http+ssl(Secure socket layer(SSL)组成,对传输的数据进行加密,保证数据安全
280443
3http不需要证书需要ca证书

1.2 HTTPS工作原理

在这里插入图片描述

  • 客户端向服务器发送 HTTPS 请求。

  • 服务器将公钥证书发送给客户端。

  • 客户端验通过自身的CA证书验收到的公钥证书是否可信。

  • 如果验证通过,客户端生成一个用于会话的对称密钥。

  • 客户端使用服务器的公钥对对称密钥进行加密,并将加密后的密钥发送给服务器。

  • 服务器使用私钥对客户端发送的加密密钥进行解密,得到对称密钥。

  • 服务器和客户端使用对称密钥进行加密和解密数据传输。

参考

1.HTTPS 的加密过程及其工作原理

1.3 HTTP的长连接和短连接

如何区分http请求时长连接还是短连接

Connection:Keep-alive #保持tcp不断开
content-length:数据长度
tarnsfer-encoding:chunked

1.4 HTTP的无状态

HTTP本身是无状态的协议,但通过Cookie的使用可以实现一定程度的状态保持功能

1.5 NGINX 如何配置HTTPS

server {
    listen       443 ssl;  # 服务器端口使用443,开启ssl, 这里ssl就是上面安装的ssl模块
    server_name  xiaopawnye.com www.xiaopawnye.com;# 域名,多个以空格分开
    
    
    # ssl证书地址
    ssl_certificate     /usr/local/nginx/cert/ssl.pem;  # pem文件的路径
    ssl_certificate_key  /usr/local/nginx/cert/ssl.key; # key文件的路径
    
    # ssl验证相关配置
    ssl_session_timeout  5m;    #缓存有效期
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;    #加密算法
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;    #安全链接可选的加密协议
    ssl_prefer_server_ciphers on;   #使用服务器端的首选算法
	
    return 301 https://$server_name$request_uri; # 将 http 重定向 https
    
    location / {
        root   html;
        index  index.html index.htm;
    }
}

参考

1.Nginx 安装 SSL 配置 HTTPS 超详细完整全过程

2.Nginx 配置 HTTPS 完整过程

3.状态码

状态码含义常用的状态码
1**信息,服务器收到请求,需要请求者继续执行操作
2**成功,操作被成功接收并处理
3**重定向,需要进一步的操作以完成请求301永久重定向
302临时重定向
304不能修改
4**客户端错误,请求包含语法错误或无法完成请求401未认证
403认证成功但被禁止
405未定义请求方式
5**服务器错误,服务器在处理请求的过程中发生了错误500服务异常异常在框架中直接抛出
502网关错误
503服务不可用

4.请求方法

4.1 请求方法的特点

请求方法特点定义支持特点的方法
幂等性多次执行的结果和一次执行的结果相同称之为幂等除了post和pach方法其余方法都是幂等方法
安全性请求方法是否修改数据option,get,head

4.2 GET和POST的区别

操作getPOST
点击返回/刷新按钮没有影响数据会重新发送
添加书签可以不可以
是否可以缓存可以不可以
历史记录
长度限制没有
数据类型限制只允许ASCII字符类型没有限制。
安全性不要使用GET请求提交敏感数据相比get而言Post的会更安全

5.cookie和session

http是无状态的((对事务处理是没有记忆能力)),怎样保持Http的连接状态

  • session是保存在服务端,cookie是保存在客户端
  • cookie是实现session的一种机制,通过http cookie来实现

注意

默认情况下,如果浏览器禁用了cookie,浏览器请求无法携带sessionid,服务器无法识别请求中的用户身份,session失效,但是任然可以通过把sessionid作为参数追加到原有的url中继续使用session

6.浏览器输入一个url中间经历的过程

DNS缓存
DNS查询
TCP握手
HTTP请求
反向代理
python网关:uwsgi,gunicorn
python框架
TCP挥手
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值