HTTP协议简单介绍

前言

所谓的协议就是指通信双方对数据传送控制的一种约定,HTTP(超文本传输协议)是浏览器和web服务器之间互相通信的规则和约定。该协议是基于请求与响应模式的、无状态的、应用层的协议。HTTP协议具有以下特点

  1. HTTP协议是应用层的协议,是一种无状态协议
  2. HTTP协议是基于TCP/IP协议之上的应用层协议,也可以承载于TLS或SSL协议层之上,就成为了HTTPS。HTTP默认的端口号为80,HTTPS的端口号为443
  3. HTTP协议由请求和响应构成,是一个标准的客户端服务器模型

协议组成

HTTP请求消息Request:请求行、请求头部、空行和请求数据四部分组成,如下图所示
在这里插入图片描述
图片来源于:https://www.cnblogs.com/ranyonsue/p/5984001.html

HTTP请求方法:OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT。常用的GET、POST
GET方法:用于获取由URI所标识的资源的信息
POST方法:用于向服务器发送请求,与GET方法不同的是POST方法要求服务器接收报文中的请求数据
请求URL

http://host[:port][abs_path]

请求头部:用于存放一些cookie,token信息

【示例1】Get请求报文

GET /yc/tywdepart/list?page=1&limit=10&key=&simplenm= HTTP/1.1
Host: 47.92.255.142:8080                  //请求头部
token: a7c464a872fafd5241fc4d58bfa5c490   //请求头部

【示例2】post请求报文

POST /yc/sys/login HTTP/1.1     
Host: xx.92.xxx.xxx:8080
Content-Type: application/json   //请求头部
Content-Length: 126              //请求头部
                                 //请求数据
{
    "username": "admin",
    "password": "admin",
    "uuid":"a0a480fc-e992-4842-807a-25f44382f02c",
    "captcha":"n8xdp"
}

请求体body:一般用来存储post的参数和参数数据,post才有请求体,get则没有请求体

HTTP响应消息Response:状态行、消息报头、空行和响应正文四部分组成.
状态行:由协议、状态代码和状态描述。状态代码由三位数字组成,表示请求是否被理解或被满足,状态描述给出了关于状态代码的简短文本描述
消息报头:用来说明客户端要使用的一些附加信息
响应正文:服务器返回给客户端的文本信息
【例3】:获取查询信息,返回josn数据

HTTP/1.1 200  
Vary: Origin  
Vary: Access-Control-Request-Method  
Vary: Access-Control-Request-Headers  
Content-Type: application/json  
Transfer-Encoding: chunked  
Date: Sat, 17 Jul 2021 03:25:40 GMT  
Keep-Alive: timeout=5  
Connection: keep-aliv  
  
{ "msg":"success",  
  "code":0,  
  "data":{"totalCount":2,"pageSize":10,"totalPage":1,"currPage":1,  
          "list":[{"id":6,"snm":"34534534","noticeContent":"guoyp","createtime":"2021-07-16"},  
                  {"id":5,"snm":"34534534","noticeContent":"guoyp","createtime":"2021-07-16"}  
                 ]  
          }  
} 

第一行为状态行,Content-Type: application/json为消息报头中文本格式。响应正文为josn格式,包括执行状态、分页信息和具体返回数据等。

Post和Get区别

Http协议定义了很多与服务器交互的方法,最基本的有4种,分别是GET、POST、PUT、DELETE,最常见是GET和POST了。GET一般用于获取/查询资源信息,而POST一般用于更新资源信息,二者之间的区别如下

  1. GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditPosts.aspx?name=test1&id=123456. POST方法是把提交的数据放在HTTP包的Body中.
  2. GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制.
  3. GET方式需要使用Request.QueryString来取得变量的值,而POST方式通过Request.Form来获取变量的值。
  4. GET方式提交数据,会带来安全问题,比如一个登录页面,通过GET方式提交数据时,用户名和密码将出现在URL上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码

这篇文章,自己写的少,使用别人原文原句的多,主要用于备忘。大家可以参考以下两篇文章,介绍很详细
主要参考:HTTP协议详解关于HTTP协议,一篇就够了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值