HTTP协议

在说HTTP协议之前,我们先来了解一下网址的概念。

1.网址:
即URL,统一资源定位符。
协议名称 : //登录信息 @ 服务器地址 : 服务器端口号/文件路径?查询字符串 # 片段标识符
https://www.baidu.com/s?ie=UTF-8&wd=qq邮箱登录

  • 查询字符串是用户提交给服务器的数据信息,这些数据中要是出现特殊字符,会导致url解析失败,所以查询字符串中不能出现特殊字符。
  • 若真的存在特殊字符,则需要对特殊字符进行url编码操作,然后在对端进行url解码操作。
  • URL编码:将每个字节转为16进制数字字符串,每两位做一位,为了表明是URL编码得来的,在最前面加上"%"。
  • URL解码:当碰见"%"开头的字符串,将其转为数字并进行十进制转换,得到相应ASCII值所对应的特殊字符。

2.HTTP协议:
超文本传输协议,用于应用层的知名协议,工作在80端口。
1)HTTP协议格式:

  • 首行:
    在这里插入图片描述
    请求首行:提交方法[get/post] URL 协议版本[HTTP/0.9/1.0/1.1]
    在这里插入图片描述
    响应首行:协议版本 响应状态码[1**/2**/3**/4**/5**] 状态码解释
    \r\n
  • 头部:请求的属性,以key:value组成的键值对,相邻键值对之间以 \r\n 分隔
    在这里插入图片描述
    \r\n
  • 正文:客户端提交的数据/服务端响应的数据
    在这里插入图片描述
    \r\n

从上我们不难发现,每部分之间都用\r\n来分隔;但正文之前会有2个\r\n,若正文存在,则可以通过头部中的Content-Length来获取正文长度。

2)提交方法get/post的异同:

  • GET提交没有正文,提交的数据在URL的查询字符串中
  • POST提交的参数在请求主体中,安全性POST更高一点
  • GET大小有限制,在2KB以内,而POST一般没有限制
  • GET主要用来从服务器获取数据,POST用于上传或修改数据

3)响应状态码的分析:

  • 1**:信息性状态码,如:100表示到现在为止所有内容都是可行的。
  • 2**:成功状态码,如:200表示请求成功。
  • 3**:重定向状态码,如:302表示请求的资源现在临时从不同的URI响应请求。
  • 4**:客户端错误状态码,如404表示请求失败,请求所希望得到的资源在服务器上未发现,即服务器不想揭示到底为何被拒绝。
  • 5**:服务器错误状态码,如500表示服务器遇到了不知道如何处理的情况;502表示服务器得到一个错误的响应。

4)缺点:不安全。

正是因为HTTP协议存在安全问题,所以优化产生了HTTPS协议。

3.HTTPS协议:
超文本传输安全协议,工作在443端口。
HTTPS基于HTTP协议,但利用SSL进行加密数据包,从而保证安全传输。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值