HTTP协议

HTTP协议格式

平时我们俗称的 "网址" 其实就是说的 URL

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

HTTP的方法

其中最常用的就是GET方法和POST方法,下面我们详细谈论一下这俩种请求

GET——从指定的服务器中获取数据

使用GET方法时,查询字符串以键值对的形式被附加在URL地址后面,一起发送到服务器

分割URL和传输数据,参数之间以&相连。 数据如果是英文字母/数字,原样发送, 如果是空格,转换为+, 如果是中文/其他字符,则直接把字符串用BASE64加密,及“%”加上“字符串的16进制ASCII码”。

https://cn.bing.com/search?q=http+get%E5%92%8Cpost%E7%9A%84%E5%8C%BA%E5%88%AB&qs=CT&pq=

 特点:

  • GET请求能够被缓存
  • GET请求会保存在浏览器的浏览记录中
  • 以GET请求的URL能够保存为浏览器书签
  • GET请求有长度限制
  • GET请主要用于获取数据

POST——提交数据给指定的服务器处理

使用POST方法时,查询字符串在POST信息中单独存在,和HTTP请求一起发送到服务器

  • POST请求不能被缓存下来
  • POST请求不会保存在浏览器的浏览记录中
  • 以Post请求的URL无法保存为浏览器书签
  • POST请求没有长度限制

HTTP的状态码

 HTTP常见Header

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

端口号范围划分 

  • 0 - 1023: 知名端口号, HTTP, FTP, SSH等这些广为使用的应用层协议, 他们的端口号都是固定的
  • 1024 - 65535: 操作系统动态分配的端口号. 客户端程序的端口号, 就是由操作系统从这个范围分配的. 
  • ssh 服务器 , 使用 22 端口
  • https 服务器 , 使用 443
  • http 服务器 , 使用 80 端口
  • telnet 服务器 , 使用 23 端口
  • ftp 服务器 , 使用 21 端口
  • 20
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值