详解HTTP协议

HTTP原理

统一资源定位符URL

URL格式

<协议>://<主机>:<端口>/<路径>

HTTP的URL

HTTP的协议格式


HTTP请求

首行: [方法] + [url] + [版本]
Header: 请求的属性, 冒号分割的键值对;每组属性之间使用\n分隔;遇到空行表示Header部分结束;
Body: 空行后面的内容都是Body. Body允许为空字符串. 如果Body存在, 则在Header中会有一个ContentLength属性来标识Body的长度。

HTTP响应

首行: [版本号] + [状态码] + [状态码解释]
Header: 请求的属性, 冒号分割的键值对;每组属性之间使用\n分隔;遇到空行表示Header部分结束;
Body: 空行后面的内容都是Body. Body允许为空字符串. 如果Body存在, 则在Header中会有一个ContentLength属性来标识Body的长度; 如果服务器返回了一个html页面, 那么html页面内容就是在body中。

HTTP的报文结构

HTTP有两类报文:
(1)请求报文——从客户向服务器发送请求报文

(2)响应报文——从服务器到客户的回答

HTTP的方法


其中最主要的就是get方法和post方法

get()和post()的区别


1.客户端浏览器会把get请求到的数据,默认放在url上,post请求的数据,可以放在请求体中
2.url请求存放数据的格式:url?key1=value1&key2=value2
请求体存放文本数据的格式:key1=value1&key2=value2

HTTP常见Header

●Content-Type: 数据类型(text/html等)
●Content-Length: Body的长度
●Host: 客户端告知服务器,所请求的资源是在哪个主机的哪个端口上; .
●User-Agent: 声明用户的操作系统和浏览器版本信息;
●referer: 当前页面是从哪个页面跳转过来的;
●location:搭配3xx状态码使用,告诉客户端接下来要去哪里访问;
●Cookie: 用于在客户端存储少量信息.通常用于实现会话(session)的功能;

HTTP的状态码


常见状态码

本机HTTP请求

1. 请求url地址:获取网页数据报,浏览器解析并渲染网页
2. 在网页上点击表单提交按钮
3. HTTP请求数据传输流程

前置知识:浏览器是客户端程序,进行http协议格式的数据报封装(包装) /分用(解析),还可以进行其他处理,如网页渲染,文件下载,图片展示等。
(1) 发送数据报:浏览器将url、 请求的数据内容包装为http协议的数据报
(2)数据封装:往网络分层下4/3层发送数据,后续就是网络数据报封装的过程
(3)主机接收数据报:发送到对应的主机,进行分用,基于数据链路层、网络层、传输层在系统中进行分用解析,最后把http协议的数据报发送到对应端口—> tomcat应用程序
(4) tomcat解析http协议的数据, 返回http协议的响应数据
(5)浏览器解析响应数据报:根据Content Type进行处理

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HTTP 协议(Hypertext Transfer Protocol)是一种用于传输超文本的应用层协议,是万维网数据传输的基础。它采用客户端-服务器模式,客户端发起请求,服务器返回响应。下面对 HTTP 协议进行详细解析。 HTTP 协议以简洁的请求-响应模型为基础。客户端发送请求报文给服务器,报文包含请求方法、URL、协议版本等信息。服务器收到请求后,根据请求内容进行相应处理,并返回响应报文给客户端。响应报文包含协议版本、状态码、响应头和响应体等信息。客户端接收到响应后,根据状态码判断请求是否成功,并解析响应内容。 HTTP 协议的特点主要包括:无状态、可靠性差、传输效率低。无状态指的是服务器不会保存任何客户端的状态信息,每次请求都是单独的。可靠性差是因为 HTTP 使用 TCP 进行数据传输,TCP 协议本身也有一定的不可靠性。传输效率低是由于 HTTP 建立连接的开销较大,并且每次请求都需要重新建立连接。 HTTP 协议的工作流程如下:客户端发送一条请求到服务器,服务器接收并解析请求,处理请求并生成响应,将响应发送给客户端,客户端接收并解析响应。 HTTP 协议的主要优点包括:易于使用、灵活性强、便于扩展。易于使用指的是 HTTP 的语法规则简单明了,易于理解和实现。灵活性强指的是可以通过设置请求头、传递参数等方式来定制请求。便于扩展指的是可以根据需要添加新的功能或特性。 总之,HTTP 协议作为互联网应用最常用的协议之一,它的设计简洁、易于使用,为用户提供了方便、快速的网络通信方式。同时,由于协议本身的一些限制,HTTP 协议的传输效率相对较低,因此在一些对效率要求较高的场景下,可能需要使用其他协议替代。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值