HTTP 、HTTPS 与 三次握手 四次挥手

一、概述

HTTP:超文本传输协议,基于TCP/IP通信协议来传输数据。

工作原理:客户端-服务端架构,客户端通过URL向http服务端发送请求,服务端接收到请求后,向客户端发送相应消息。http默认端口:80

二、http三个特点

http是无连接的,限制每次连接只处理一个请求,服务端处理完客户端请求,并受到客户端的应答后,断开连接,节省传输时间;

http是媒体独立的,客户端和服务器能处理的事情们都可以通过http发送;

http是无状态的,对于处理过的事务没有记忆能力,比如无法记忆用户是否登录,Cookie就是解决这个问题的。(记录登录状态)

三、HTTP消息结构

客户端请求消息:请求行,请求头,空行和请求数据

请求行:GET/test.html HTTP/1.1   GET/POST+路径+版本号

常用的消息头:

扫描二维码关注公众号,回复: 9327223 查看本文章

Accept:text/html,image/*(告诉服务器。浏览器可以接受文本,网页图片)

Accept-Chareset:ISO-8859-1(接收字符编码:iso-8859-1)

Accpept-Language:zh-cn(浏览器支持的语言)

Host:localhost:8080(浏览要找的主机)

Cookie:

connection:close/Keep-Alive(保持链接,发完数据后,我不关闭链接)

服务器响应信息:状态行,消息报头,空行,响应正文

状态行:HTTP1.1 200 OK 协议版本、状态码、简要描述

http响应消息:

location:http//...

server:apache tomact(告诉浏览器我是tomcat)

Content-Language:zh-cn(支持中文)

Refresh:1;url=http://www.baidu.com(过一秒刷新到百度)

空行:区分请求数据和请求行、头信息

四、HTTP状态码分类:

1**:消息服务器已收到,需要请求者继续操作(101:客户端需要切换协议)

2**:成功(200)

3**:重定向,需要进一步操作完成请求(302:网页被永久转移到其他URL)

4**:客户端错误(404:找不到页面)

5**:服务器错误(505:内部服务器错误)

五、HTTP请求方法:

GET、POST、HEAD、PUT、CONNECT....

GET和POST区别:

get:请求指定的页面信息,也就是直接写url去访问,暴露url;

eg: 登录的时候,登录名和登录密码都会暴露出来,是不安全的。

会被缓存,不安全;

把请求头信息和数据信息,一次性发送(发一次包);

post:向指定资源提交数据进行处理请求,数据包在请求体内;

参数不会保留;

先发送header,服务器响应100,再发送data(发两次包);

四、三次握手和四次挥手

——  ——  ——  ——  ——  ——  ——  ——  ——  ——  ——  ——  ——  ——  ——

 ——  ——  ——  ——  ——  ——  ——  ——  ——  ——  ——  ——  ——  ——  —— 

 ——  ——  ——  ——  ——  ——  ——  ——  ——  ——  ——  ——  ——  ——  —— 

若有三次握手,则这种情况并不会存在,因为 客户端会重新发送一个一个链接给服务端,服务端进行确认。

 ——  ——  ——  ——  ——  ——  ——  ——  ——  ——  ——  ——  ——  ——  ——

    ——  ——  ——  ——  ——  ——  ——  ——  ——  ——  ——  ——  ——  —— 

           ——  ——  ——  ——  ——  ——  ——  ——  ——  ——  ——  ——  ——  ——  —— 

 ——  ——  ——  ——  ——  ——  ——  ——  ——  ——  ——  ——  ——  ——  —— 

TIME_WAIT的意义:

 ——  ——  ——  ——  ——  ——  ——  ——  ——  ——  ——  ——  ——  ——  —— 

syn 溢出攻击:

三次握手,第一次请求链接时,会发送多个syn包,无论是否链接都会占用cpu,导致服务器崩溃,所以必须识别syn包是否是同一时间段多个随机的ip在发送。

参考博文:https://blog.csdn.net/qq_34777600/article/details/81946514

五、http和https

这三个协议都是应用层协议。

http:超文本传输协议

https : 安全的超文本传输协议, 在 HTTP 协议基础上加入了 SSL 协议保证安全传 输。

HTTP 和 HTTPS 主要应用于 Web 浏览器和网站服务器之间传递数据,HTTP 协议以 明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了 Web 浏览器和网 站服务器之间的传输报文,就可以直接读懂其中的信息,因此 HTTP 协议不适合传输一 些敏感信息,比如信用卡号、密码等。而 HTTPS 为了数据传输的安全,在 HTTP 协议的 基础上加入了 SSL 协议,SSL 协议依靠证书来验证服务器的身份,并为浏览器和服务器 之间的通信加密。

区别:

1) HTTPS 协议需要申请 CA 证书,一般免费的证书很少,需要交费

2) HTTP 是超文本传输协议,信息是明文传输,HTTPS 是具有安全性的 SSL 加密传输 协议。

3) HTTP 和 HTTPs 使用的是完全不同的连接方式,用的端口号也不一样(HTTP: 80 HTTPS: 443)。

4)HTTP 协议的连接简单,是无状态的,HTTPS 协议是由 SSL+HTTP 协议构成的可进行 加密传输,身份认证的网络协议,比 HTTP 协议安全。

参考:https://www.cnblogs.com/jeriffe/articles/2804190.html

区别 https://www.cnblogs.com/wqhwe/p/5407468.htm

发布了93 篇原创文章 · 获赞 45 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_41431406/article/details/99712940