TCP/IP、HTTP、HTTPS

一、TCP/IP

TCP/IP协议是一系列网络协议的总和,是个协议簇。它定义了电子设备如何连入因特网,以及数据如何在它们之间进行传输。TCP/IP协议通常被认是一个四层协议,每一层都呼叫它的下一层所提供的协议来完成自己的需求:

应用层

为网络排错,文件传输,远程控制和 Internet 操作提供具体的应用程序

常见协议:

Telnet:远程管理、FTP:文本传输协议、TFTP:简单文件传输协议、

SMTP:发送邮件、POP3:接收邮件、

HTTP:超文本传输协议、HTTPS:加密超文本传输协议、

DNS:域名解析服务

传输层

主要为两台主机上的应用程序提供端到端的通信,为网络提供了流量控制,错误控制和确认服务

TCP:传输控制协议;面向连接,可靠,建立虚链路,确认和窗口流量控制机制

UDP:用户数据报协议;是无序的,不可靠的,无连接,低开销,无确认,没有窗口和流量控制

网络层

处理分组在网络中的活动,如分组的选路;提供独立于硬件的逻辑寻址,实现物理地址与逻辑地址的转换

IP:网际协议

ICMP:因特网控制报文协议

ARP:地址解析协议,将IP地址映射为物理地址

RARP:逆向ARP,将物理地址映射为IP地址

IGMP协议:Internet组管理协议

数据链路层称数据链路层或网络接口层,包括设备驱动程序和网络接口卡,各种物理通信网络接口。

二、数据包

在 TCP/IP协议中数据先由上往下将数据装包,然后由下往上拆包,进行数据传递。过程如下:

三、三次握手和四次挥手

三次握手:建立连接时(C/S)

第一次握手:建立连接时,Client将标志位SYN置为1,随机产生一个值seq=x,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认

第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=x+1,随机产生一个值seq=y,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。

第三次握手:Client收到确认后,检查ack是否为x+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=y+1,并将该数据包发送给Server,Server检查ack是否为y+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了。

四次挥手:终止TCP连接

第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。

第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。

第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。

第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。

四、HTTP&HTTPS

1、HTTP

Hyper Text Transfer Protocol,超文本传输协议,一种建立在TCP上的无状态连接,基本工作流程是客户端发送一个HTTP请求,说明要访问的资源和请求动作,服务端收到请求后做出相应的动作访问服务器资源,最后发送HTTP响应把结果返回给客户端。

这里提一下HTTP常见状态码及含义

1xx : 信息响应类,表示接收到请求并且继续处理
100Continue -- 继续。客户端应继续其请求
101Switching Protocols -- 切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议
2xx : 处理成功响应类,表示动作被成功接收、理解和接受
200OK -- 请求成功。一般用于GET与POST请求
201Created -- 已创建。成功请求并创建了新的资源
202Accepted -- 已接受。已经接受请求,但未处理完成(异步任务)
203Non-Authoritative Information -- 非授权信息。请求成功。但返回的meta信息不在原始的服务器,而是一个副本
204No Content -- 无内容。服务器成功处理,但未返回内容
205Reset Content -- 重置内容。服务器处理成功,用户终端(例如:浏览器)应重置文档视图。可通过此返回码清除浏览器的表单域
206Partial Content -- 部分内容。服务器成功处理了部分GET请求
3xx : 重定向响应类,为了完成指定的动作,必须接受进一步处理
301Moved Permanently -- 永久移动, 请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替
302/307Found -- 临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI;临时重定向
304Not Modified -- 未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在  指定日期之后修改的资源
305Use Proxy -- 使用代理。所请求的资源必须通过代理访问
4xx : 客户端错误,客户请求包含语法错误或者是不能正确执行
400Bad Request -- 用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的
401Unauthorized -- 表示用户没有权限(令牌、用户名、密码错误)
403Forbidden -- 表示用户得到授权(与401错误相对),但是访问是被禁止的
404Not Found -- 服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面
5xx : 服务端错误,服务器不能正确执行一个正确的请求
500Internal Server Error -- 服务器内部错误,无法完成请求
501Not Implemented -- 服务器不支持请求的功能,无法完成请求
502Bad Gateway -- 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应
503Service Unavailable -- 由于超载或系统维护,服务器暂时的无法处理客户端的请求
504Gateway Time-out -- 充当网关或代理的服务器,未及时从远端服务器获取请求
505HTTP Version not supported -- 服务器不支持请求的HTTP协议的版本,无法完成处理

2、HTTPS

HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS。

客户端在使用 HTTPS 方式与 Web 服务器通信时过程如下:

客户使用HTTPS的 URL 访问 Web 服务器,请求与 Web 服务器建立 SSL 连接。Web 服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。客户端的浏览器与 Web 服务器开始协商 SSL 连接的安全等级,也就是信息加密的等级。客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。Web 服务器利用自己的私钥解密出会话密钥。Web 服务器利用会话密钥加密与客户端之间的通信。
 

3、HTTP和HTTPS的比较

HTTPS协议需要到 ca 申请证书,免费证书较少,故需要一定费用。

HTTP连接简单且无状态,传输信息是明文传输,HTTPS由HTTP+SSL加密协议构建 ,加密传输,更安全

连接方式不同,且HTTP使用80端口, HTTPS使用443端口

 

以上!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值