HTTP协议---应用层协议,web核心

HTTP协议—应用层协议,web核心

超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。默认端口号80;
http特点:

  1. 传输的过程是明文传输,就导致他安全性比较差;
  2. 是一种无状态的协议,在浏览器和服务器之间交互,单纯的http是无法保存某次登录的状态的,在下次登录时,依然会要求登录
  3. 是一种应用层协议

测试使用的工具:HTTPwatch
HTTP协议主要是请求和响应,协议的头和正文

认识URL

俗称网址:http://(协议方案名)user:pass(登录认证信息)@www.example.jp(服务器地址/域名):80(服务器端口号)/dir/index.htm(带层次的文件路径)?uid=1(查询字符串)#ch1(片段标识符)

urldecode:编码:url中特殊字符都有特殊含义,因此用户提交数据中若存在特殊字符,则需要转码(每个字节转换为16进制数字的字符串–为了表明数据经过了转码,因此在转码的数据前加上%)
urlencode:解码:在用户提交的数据中遇到%时,则对紧跟在其后的两个字符转换为数字,并且第一个数字左移4位加上第二个数字。

HTTP请求报文的格式:
使用fiddler工具来抓包,抓包就是在程序运行过程中截取一段内容方便我们解析和调试。
在启用抓包工具后,浏览器向服务器发送请求过程变成浏览器先向fiddler发送请求,工具再转发给服务器,服务器接收请求后返回也先返回给fiddler,再转发给浏览器。扮演了代理的角色。

  1. 首行:方法(GET/POST)+url+版本号(HTTP/(0.9/1.0/1.1/2))\r\n
  2. 协议头部header:请求的属性,‘:’分割的键值对,每组属性之间用\r\n进行间隔。
  3. 空行:\r\n; 协议头的结束标记
  4. 正文(body):空行后面的内容都是body,body允许为空字符串,如果body存在,通常会在header中有一个 Content-Length的属性来记录body的长度;通常情况下GET方法对应的请求没有body
    POST方法对应的请求有body

HTTP响应报文的格式:

  1. 响应首行:协议版本号+响应状态码(以1开头/以2开头/…3/…4/…5)—(200/302/400/404/502/500)+状态码解释
  2. 协议头部header:请求的属性,‘:’分割的键值对,每组属性之间用\r\n进行间隔。
  3. 空行:\r\n; 协议头的结束标记
  4. 正文(body):空行后面的内容都是body,body允许为空字符串,如果body存在,通常会在header中有一个 Content-Length的属性来记录body的长度;如果服务器返回了一个HTML页面,那么HTML页面的内容就在body中。
状态码解释常用状态码
1xx信息提供状态码接收的请求正在处理
2xx肯定应请求答状态码200:成功处理了请求
3xx重定向状态码(需要附加操作来完成请求)302:(临时移动) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求
4xx客户端错误状态码–404(页面不存在)400:服务器不理解请求的语法 404:服务器找不到请求的网页
5xx服务器错误状态码500:(服务器内部错误) 服务器遇到错误,无法完成请求 502:(错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。

HTTP方法:

方法说明支持的HTTP协议版本(常用版本有两个:1.0/1.1)
GET获取资源1.0,1.1
POST传输实体主体1.0,1.1
PUT传输文件1.0,1.1
HEAD获得报文首部1.0,1.1
DELETE删除文件1.0,1.1
OPTIONS询问支持的方法1.1
TRACE追踪路径1.1
CONNECT要求用隧道协议连接代理1.1
LINK建立和资源之间的联系1.0
UNLINK断开连接关系1.0

HTTP请求:

  • 常用请求:
    • GET请求,获取由Request-URL所标识的资源
    • POST请求,在Request-URL所标识的资源后附加新的数据

HTTP常见 Header:

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

HTTP-Session:
Session ID:一个会话的id号,32位长度的16进制的编码,一共有16^32次方个组合

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值