嵌入式知识点总结 网络编程 专题提升(二)-HTTP/IP

针对于嵌入式软件杂乱的知识点总结起来,提供给读者学习复习对下述内容的强化。

目录

1.什么是http协议?

2.http协议有什么特点?

3.https建立连接过程是什么?

4.http和https的区别是什么?https有什么优缺点?

5.请你说一说http返回码是什么?

6.http1.1和http1.0的区别?

7.请你说一下http协议会话结束标志怎么截出来?

8.请你说-说IP地址作用,以及MAC地址作用


1.什么是http协议?

HTTP(超文本传输协议 ,HyperText Transfer Protocol)是一种用于传输网页数据的协议,它定义了客户端(通常是浏览器)和服务器之间的通信规则。HTTP是无状态的,意味着每次请求都是独立的,服务器不会记住任何之前的请求信息。

HTTP协议的工作原理

请求:客户端(比如浏览器)发送HTTP请求到服务器。这个请求包括了请求方法(如GET、POST、PUT、DELETE等)、请求头(包含客户端信息、浏览器类型、语言等)以及请求体(在POST请求中,可能包含用户输入的数据)。

响应:服务器接收到请求后,会处理请求,并返回一个HTTP响应。响应包含了状态码(如200表示成功,404表示页面未找到)、响应头(包含服务器信息、内容类型等)以及响应体(即网页内容或其他数据)。

无状态:每个HTTP请求都是独立的,服务器不会记住客户端的状态。如果需要保持状态,通常会使用Cookies或会话(Session)来实现。

常见的HTTP状态码包括:

200 OK:请求成功,服务器返回了正常的响应。

404 Not Found:请求的资源不存在。

500 Internal Server Error:服务器内部错误。

2.http协议有什么特点?

简单快速

客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快

灵活

HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记

无连接

无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后即断开连接。采用这种方式可以节省传输时间。

无状态

HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

5.支持B/S及C/S模式。

ps:B/S模式是现代Web应用中最常见的架构。这里的"B"代表浏览器(Browser),而"S"代表服务器(Server)。在这种模式下,用户通过浏览器作为客户端,与服务器进行通信,浏览器通过HTTP协议向服务器发送请求,并接收服务器返回的响应。

C/S模式是传统的客户端与服务器架构。在这种模式中,客户端是专门的应用程序,用户通过客户端与服务器进行交互。客户端应用程序通过HTTP协议或其他协议(如TCP、UDP等)向服务器发送请求,服务器返回数据。

6.默认端口80

7.基于TCP协议

补充一下源根目标地址,通常出现在网络通信中,指的是数据传输的起点和终点。

源地址:源地址是指发送数据的设备的网络地址。它表示数据从哪里发送出来。当你访问一个网站时,源地址是你的设备的IP地址。

目标地址:目标地址是指接收数据的设备的网络地址。它表示数据的目的地。当你访问网站时,目标地址是网站服务器的IP地址。

3.https建立连接过程是什么?

HTTPS(超文本传输安全协议)是HTTP协议的加密版本,使用SSL/TLS协议在HTTP的基础上提供数据加密、完整性验证和身份认证。HTTPS的建立连接过程相对复杂,因为它涉及到加密和密钥交换等操作。下面是HTTPS建立连接的过程,通常称为TLS握手过程

1.客户端连接到Web服务器

一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。例如,http://www.baidu.com
2.发送HTTP请求

通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据4部分组成。
3.服务器接受请求并返回HTTP响应

Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。一个响应由状态行、响应头部、空行和响应数据4部分组成。
4.释放连接TCP连接

若connection 模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;若connection 模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求;
5.客户端浏览器解析HTML内容

客户端浏览器首先解析状态行,查看表明请求是否成功的状态代码。然后解析每一个响应头,响应头告知以下为若干字节的HTML文档和文档的字符集。客户端浏览器读取响应数据HTML,根据HTML的语法对其进行格式化,并在浏览器窗口中显示。

4.http和https的区别是什么?https有什么优缺点?

HTTP(Hypertext Transfer Protocol):是一个明文传输协议,数据在传输过程中不加密,容易被中间人(如黑客)窃听、篡改或伪造。

HTTPS(Hypertext Transfer Protocol Secure):是HTTP协议的安全版本,通过在HTTP的基础上加入SSL/TLS加密层,使得数据在传输过程中被加密,提供了数据机密性、完整性和身份认证。

HTTPS的优缺点:

优点:

数据加密

HTTPS通过SSL/TLS协议对传输的数据进行加密,防止数据在传输过程中被窃听或篡改。即使数据被拦截,也无法被解读。

身份认证

HTTPS使用数字证书来验证服务器身份,确保用户访问的是合法的服务器,防止被伪造的网站欺骗。

数据完整性

在传输过程中,HTTPS能够检测数据是否被篡改,保证数据的完整性,防止中间人攻击(Man-in-the-Middle attack)。

提高用户信任

使用HTTPS的网站会在浏览器中显示"锁"图标,提示用户该网站是安全的,从而增加用户对网站的信任,特别是在处理敏感数据时。

SEO排名提升

搜索引擎(如Google)更倾向于为使用HTTPS的网站提供更高的排名,这有助于提升网站的曝光度。

缺点

性能开销

HTTPS需要进行加密和解密操作,尤其是在TLS握手过程中,增加了服务器和客户端的计算开销。虽然现代硬件可以快速处理,但相比于HTTP,HTTPS的性能会稍微差一些。

证书费用

许多证书颁发机构(CA)收取SSL/TLS证书费用,尤其是一些高信任级别的证书可能非常昂贵。虽然也有免费的证书(如Let's Encrypt),但一些高端证书仍需要付费。

配置复杂度

配置HTTPS需要获得并安装SSL/TLS证书,且要正确配置服务器。如果配置不当,可能导致安全问题或者性能下降。

兼容性问题

虽然现代浏览器和设备都支持HTTPS,但旧版浏览器或设备可能不完全支持最新的TLS版本,可能导致兼容性问题。

5.请你说一说http返回码是什么?

HTTP返回码(也称为状态码)是HTTP协议中用于表示服务器对客户端请求的处理结果的三位数字代码。它们出现在HTTP响应的首部,帮助客户端理解请求是否成功,以及如果失败的话,是什么原因。HTTP状态码按类别分为五个主要的范围,每个范围表示不同类型的响应:

  1. 1xx:信息性状态码

这些状态码表示请求已接收,服务器正在继续处理请求。

100 Continue:服务器已接收到请求的初步部分,客户端可以继续发送请求的其余部分。

101 Switching Protocols:服务器同意客户端的请求,并转换到另一协议。

  1. 2xx:成功状态码

这些状态码表示客户端的请求已成功被服务器接收、理解并处理。

200 OK:请求成功,服务器返回请求的内容。

201 Created:请求成功,并且服务器创建了新的资源(例如,POST请求成功后创建了一个新对象)。

202 Accepted:请求已被接受,但处理尚未完成。通常用于异步操作。

204 No Content:请求成功,但没有返回任何内容。常用于DELETE请求。

  1. 3xx:重定向状态码

这些状态码表示客户端需要进一步的操作才能完成请求,通常是需要跟随服务器提供的重定向地址。

301 Moved Permanently:请求的资源已经永久移动到新的位置,客户端应使用新地址访问。

302 Found:请求的资源临时被移动到不同的位置。客户端应该继续使用原有的URL进行访问。

303 See Other:服务器响应请求后,客户端应该通过GET请求获取资源。

304 Not Modified:表示资源没有被修改,可以使用缓存中的版本。

307 Temporary Redirect:临时重定向,请求应使用原来的方法,但访问新的URL。

308 Permanent Redirect:永久重定向,请求应使用新的URL。

  1. 4xx:客户端错误状态码

这些状态码表示客户端的请求有错误,服务器无法或不会处理该请求。

400 Bad Request:请求格式错误,服务器无法理解。

401 Unauthorized:客户端未提供认证信息,或者提供的认证信息无效。需要授权。

403 Forbidden:服务器理解请求,但拒绝执行。通常是因为权限问题。

404 Not Found:请求的资源在服务器上未找到,可能是URL错误或资源被删除。

405 Method Not Allowed:请求的方法不被允许,例如使用GET请求更新数据,服务器不允许。

408 Request Timeout:客户端请求超时,服务器等待超时后关闭连接。

410 Gone:请求的资源已经被永久删除,不再可用。

413 Payload Too Large:请求的实体太大,服务器无法处理。

414 URI Too Long:请求的URI(地址)过长,服务器无法处理。

  1. 5xx:服务器错误状态码

这些状态码表示服务器未能正确处理客户端的请求,通常是服务器端的错误。

500 Internal Server Error:服务器遇到意外情况,无法完成请求。常见的500错误通常与服务器的配置或程序错误有关。

501 Not Implemented:服务器不支持请求的方法,无法处理。

502 Bad Gateway:服务器作为网关或代理时,从上游服务器收到无效响应。

503 Service Unavailable:服务器暂时无法处理请求,通常是因为过载或维护。

504 Gateway Timeout:服务器作为网关或代理时,没有及时收到上游服务器的响应。

505 HTTP Version Not Supported:服务器不支持客户端请求使用的HTTP协议版本。

6.http1.1和http1.0的区别?

HTTP/1.0

默认每次请求/响应后关闭连接。也就是说,每发送一个请求,客户端与服务器之间都会建立一次新的TCP连接,处理完请求后再关闭,导致了每个请求都需要重新建立连接,增加了延迟。

HTTP/1.1

引入了持久连接 (Persistent Connection)。客户端和服务器之间的TCP连接在处理完一个请求后不会立即关闭,而是保持一段时间,可以用来处理后续的多个请求。通过使用Connection: keep-alive头部,可以使多个请求共享同一个连接,减少了连接建立和关闭的开销。

7.请你说一下http协议会话结束标志怎么截出来?

看tcp连接是否有断开的四部挥手阶段。

在HTTP协议中,会话结束标志 通常是通过TCP连接关闭来表示的。具体而言,HTTP请求和响应的结束标志通常是在服务器或客户端关闭TCP连接时显现的。根据HTTP版本和设置的不同,结束标志的具体方式也有所不同。

截取会话结束标志,通常是通过观察以下几个方面:

Connection: close头部:表示会话结束。

TCP连接的关闭 :通过查看TCP连接的状态(如通过netstat命令或网络抓包工具Wireshark等)来判断连接是否已经关闭。

8.请你说-说IP地址作用,以及MAC地址作用

IP地址用于网络层的寻址,确保数据可以跨网络进行转发。

MAC地址用于数据链路层的设备标识,确保数据能够在局域网内到达正确的设备。

相关推荐
s_fox_5 分钟前
Nginx Embedded Variables 嵌入式变量解析(4)
java·网络·nginx
etcix1 小时前
实现一个简单的拉取网络todo app
网络
网络安全(华哥)1 小时前
网络安全服务实施流程管理 网络安全服务体系
运维·服务器·网络
查理养殖场2 小时前
计算机网络之TCP的可靠传输
网络·tcp/ip·计算机网络
六六六六六66662 小时前
企业组网IP规划与先关协议分析
服务器·网络·tcp/ip
苏三福3 小时前
rk3588/3576板端编译程序无法运行视频推理
arm开发·音视频
roman_日积跬步-终至千里3 小时前
【Flink实战】Flink网络内存和托管内存
服务器·网络·flink
AIGC安琪3 小时前
【Stable Diffusion】SD迎来动画革命,AnimateDiff快速出图
人工智能·网络协议·tcp/ip·stable diffusion·aigc
成都纵横智控科技官方账号3 小时前
工业路由器和工业交换机,打造高效稳定的工业网络?
网络·物联网·自动化
渔舟唱晚@3 小时前
FFmpeg+WebSocket+JsMpeg实时视频流实现方案
websocket·网络协议·ffmpeg