计算机网络高频(五)HTTP和HTTPS

1.什么是Http协议?⭐

基本介绍:

HTTP(Hyper Text Transfer Protocol): 全称超文本传输协议,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。

HTTP 是一种应用层协议,是基于 TCP/IP 通信协议来传递数据的,其中 HTTP1.0、HTTP1.1、HTTP2.0 均为 TCP 实现,HTTP3.0 基于 UDP 实现。现主流使用 HTTP1.0 和 HTTP3.0。

协议: 为了使数据在网络上从源头到达目的,网络通信的参与方必须遵循相同的规则,这套规则称为协议,它最终体现为在网络上传输的数据包的格式。

通俗点讲,协议就是要保证网络通信的双方,能够互相对接上号。就像是两个人传递纸条通过互相指定的暗号,如果发送天亮了,表示可以打游戏了等等

HTTP协议的特点包括:

  1. 简单性:HTTP协议的设计简单明了,易于理解和实现。
  2. 无状态性:HTTP协议是无状态的,即服务器不会保存客户端的状态信息。每个请求都是独立的,服务器不会记住之前的请求。
  3. 可扩展性:HTTP协议支持通过添加新的请求方法、头部字段等来扩展其功能。
  4. 基于请求-响应模型:客户端发送请求给服务器,服务器根据请求返回相应的响应。
  5. 支持缓存:HTTP协议支持缓存机制,可以减少数据传输和提高性能。
  6. 支持连接:HTTP协议支持持久连接,可以在一个TCP连接上传输多个请求和响应,减少连接的建立和关闭开销。

2. Socket和http的区别和应用场景⭐

Socket(套接字): Socket是一种通用的网络编程接口,它提供了一种在计算机网络上进行通信的方式。Socket允许不同计算机之间的进程通过网络进行数据传输和交流。它提供了底层的数据传输功能,可以实现点对点的数据传输。

Socket的特点:

  • 基于传输层协议,如TCP或UDP。
  • 提供了底层的数据传输接口,可以直接读写数据。
  • 可以实现实时的双向数据传输。
  • 灵活性高,可以自定义通信协议。

Socket的应用场景: Socket适用于需要实时、双向通信的场景,例如实时聊天、实时游戏、视频流传输等。它可以在网络上直接传输数据,可以自定义通信协议,适用于各种特定需求的应用。

HTTP(超文本传输协议): HTTP是一种应用层协议,它建立在Socket之上,用于在Web上进行数据传输。HTTP是一种无状态、请求-响应的协议,客户端发送请求,服务器返回响应。HTTP通常使用TCP作为传输层协议。

HTTP的特点:

  • 基于请求-响应模型,客户端发送请求,服务器返回响应。
  • 使用URL来标识资源。
  • 无状态,每个请求都是独立的,服务器不会保留客户端的状态信息。
  • 支持多种请求方法,如GET、POST、PUT、DELETE等。

HTTP的应用场景: HTTP适用于客户端与服务器之间的通信,特别是在Web应用中。它用于在浏览器和服务器之间传输HTML页面、图像、视频、音频等资源。HTTP还广泛应用于RESTful API,用于实现不同系统之间的数据交换和通信。

3. 什么是http的请求体?⭐⭐⭐

HTTP请求由请求方法(HTTP Method)、URL、协议版本和请求首部字段组成。

以下是HTTP请求的基本结构:

  1. 请求方法(HTTP Method):指示服务器应该执行的操作类型。常见的HTTP请求方法包括:GET:获取资源POST:提交数据,创建资源PUT:更新资源DELETE:删除资源HEAD:获取资源的头部信息OPTIONS:获取服务器支持的请求方法和功能PATCH:对资源进行部分更新
  2. URL(Uniform Resource Locator):指定要请求的资源的地址。URL由协议、主机名、端口号和路径组成,例如:http://example.com/api/users。
  3. 协议版本:指定使用的HTTP协议版本。常见的协议版本包括HTTP/1.1和HTTP/2。
  4. 请求首部字段:包含了请求的附加信息,以键值对的形式出现。常见的请求首部字段包括:Host:指定服务器的主机名和端口号User-Agent:标识客户端的用户代理信息Content-Type:指定请求体的数据类型Content-Length:指定请求体的长度Authorization:用于身份验证的凭据Cookie:包含客户端的Cookie信息Accept:指定客户端能够接受的响应内容类型Referer:指示请求的来源URL
  5. 请求体:可选的,包含了请求的数据内容。它通常在POST、PUT等请求方法中使用,用于向服务器提交数据。

4. http的响应报文有哪些?⭐⭐

HTTP的响应报文由状态行(Status Line)、响应首部字段(Response Headers)、空行和响应体(Response Body)组成。

以下是HTTP响应报文的基本结构:

  1. 状态行(Status Line):包含了HTTP响应的状态码和对应的状态消息。状态行的格式为HTTP版本 状态码 状态消息,例如:HTTP/1.1 200 OK。常见的状态码包括:1xx:信息性状态码,表示请求正在处理2xx:成功状态码,表示请求已成功处理3xx:重定向状态码,表示需要进一步操作以完成请求4xx:客户端错误状态码,表示请求包含错误或无法完成请求5xx:服务器错误状态码,表示服务器无法完成请求
  2. 响应首部字段(Response Headers):包含了响应的附加信息,以键值对的形式出现。常见的响应首部字段包括:Content-Type:指定响应体的数据类型Content-Length:指定响应体的长度Server:指示响应的服务器软件信息Set-Cookie:设置响应的Cookie信息Ca

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

c++/嵌入式面经专栏 文章被收录于专栏

本人2022年毕业于山东大学,目前就职intel。打算把之前校招时做的笔记通过专栏发出来,本专栏适合于C/C++、嵌入式方向就业的同学,本篇面经总结数千篇面经的知识集合,实时更新全网最新的嵌入式/C++最新内容,囊括了C语言、C++、操作系统、计算机网络、嵌入式、算法与数据结构、数据库等一系列知识点,在我看来这些是求职者在面试中必须掌握的知识点。最后呢祝各位能找到自己合适的工作。

全部评论

相关推荐

点赞 评论 收藏
分享
1 5 评论
分享
牛客网
牛客企业服务