HTTP协议
- HTTP
-
- HTTPS
- URL
- Request
-
- 请求行
- 请求头
- 请求体
-
- GET请求与POST请求
- Response
-
- 响应行
- 响应头
- 响应体
HTTP(Hyper Text Transfer Protocol),超文本传输协议是一个简单的请求-响应协议,通常运行在TCP之上。它是用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传送协议。它工作在C/S架构上,浏览器(HTTP客户端)通过URL向Web服务器(HTTP服务端)发送请求,而服务端根据接收到的请求后,向客户端响应信息。
文章图片
HTTPS
HTTPS (Hyper Text Transfer Protocol over SecureSocket Layer),超文本传输安全协议是以安全为目标的 HTTP 通道(即HTTP的安全版),在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS相当于HTTP 加入了SSL(Secure Sockets Layer 安全套接字协议),HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面 。URL
HTTP使用URL来传输数据和建立连接。URL(uniform resource locator 统一资源定位符)是因特网的万维网服务程序上用于指定信息位置的表示方法。即任何网站、网页等在线资源的完整网址。示例,简单介绍URL的组成:
https://blog.csdn.net/qq_56886142/category_11700124.html?spm=1001.2014.3001.5482&id=AQ_Teacher&pwd=123#blog
- 协议:“https:”。"HTTPS"后面的“//”为分隔符。
- 域名:“blog.csdn.net”。一个URL中,也可以使用IP地址作为域名使用。
- 端口:域名后面的是端口,域名和端口之间使用“:”作为分隔符。一般使用默认端口,可省略。
- 虚拟目录:从域名后的第一个“/”开始到最后一个“/”。虚拟目录也不是URL必须的部分。
- 文件名:从域名后的最后一个“/”开始到“”。如果没有“”,则是从域名后的最后一个“/”开始到“#”是文件名部分;如果没有“”和“#”,那么从域名后的最后一个“/”开始到结束都是文件名部分。文件名也不是URL必须的部分,一般使用默认文件名,可省略。
- 锚:从“#”开始到最后。锚也不是URL必须的部分。
- 参数:从“”开始到“#”,又称搜索部分、查询部分。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符。
Request(请求报文)是指客户端向服务器端发送的请求消息,它包含请求行、请求头和请求体三部分。下面向Register.html发起请求,地址栏输入URL回车,如图:
文章图片
点击注册,向Register发起请求并跳转到该页面,如图:
文章图片
请求行
请求行是展现当前的请求方式、访问地址、HTTP协议的版本的信息。
Register.html请求行:
文章图片
Register请求行:
文章图片
请求头
请求头是以具体的参数方式来详细说明本次的请求。
Register.html请求头:
文章图片
Register请求头:
文章图片
其中:
- Accept:声明当前请求能够接受的MIME(Multipurpose Internet Mail Extensions(多用途互联网邮件扩展))文件类型
- Host:服务器的主机地址
- Referer:当前请求来源页面的地址
- Content-Length:请求体内容的长度
- Content-Type:请求体的内容类型,这一项的具体值是媒体类型中的某一种
- User-Agent:浏览器名称
请求体是将一个页面表单中的组件值通过param1=value1¶m2=value2的键值对形式编码成一个格式化串,它承载多个请求参数的数据。即POST请求方式下的请求参数。
Register.html的请求方式是GET,而GET方式是没有请求体的。
文章图片
Register的请求方式是POST,请求体如下:
文章图片
GET请求与POST请求 GET是从服务器上获取数据,POST是向服务器传送数据。
GET请求的请求参数附着在URL后面,浏览器地址栏能够看到,所以安全性低( GET请求的请求参数放在请求行中); 而且URL携带请求参数的容量有限,如果数据量大,那么超出容量的数据会丢失。
POST请求的请求参数放在请求体中,浏览器地址栏看不到,所以相对安全些;而且请求体发送数据的空间没有限制,可以发送各种不同类型的数据。Response
Response(响应报文)一般情况是服务器接受并处理客户端发起的请求后返回的HTTP响应消息。它包含响应行、响应头和响应体三部分。下面查看Register.html的响应,如图:
文章图片
Register的响应:
文章图片
响应行
响应行是展现HTTP协议版本、响应状态码和响应状态的说明文字的信息。
Register.html的响应行:
文章图片
Register的响应行:
文章图片
其中,响应状态码分为五种:
- 1**:指示信息——请求已接收,继续处理
- 2**:成功——请求已被成功接收理解
- 3**:重定向——完成请求需要更进一步的操作
- 4**:客户端错误——请求无法实现或请求语法错误
- 5**:服务端错误——服务端不能实现合法的请求
响应头是对响应体的信息的说明。
Register.html的响应头:
文章图片
Register的响应头:
文章图片
响应体
响应体是服务器返回各种数据的主体。
Register.html的响应体:
文章图片
Register的响应体:
【面试|Web协议(HTTP协议)】
文章图片
推荐阅读
- 面试|springboot启动报错(Failed to start bean ‘documentationPluginsBootstrapper‘)
- 面试|Hadoop总结
- java|Docker 文件映射
- java|Linux给目录及目录下所有文件赋予最高权限
- java|Linux卸载RabbitMQ
- java|mybatis idea 好用的插件
- java|redis批量删除key值
- vue|Vuex——Mutation传递参数
- 前端|Vuex —— 组件之间数据共享