HTTP 协议介绍
- HTTP 协议规定了浏览器和服务器之间互相通信的规则.
- 请求协议: 规定了客户端发送给服务器的内容格式
- 响应协议: 服务器发送给客户端的内容格式
请求协议
- 请求协议格式:
- 请求行
- 多个请求头信息(属性名:属性值)
- 空行
- 请求体
// 请求行: 请求方式 请求的资源路径 http 协议版本
GET https//www.baidu.com HTTP/1.1
// 浏览器支持的 MIME 类型
Accept:text/html,application/xhtml+xml,application/xml;image/webp,image/apng,*/*;
// 浏览器支持的压缩格式
Accept-Encoding:gzip, deflate
// 浏览器支持的语言
Accept-Language:en-US,en;q=0.8,zh-CN;q=0.6,zh;q=0.4
// 主机
Host:www.baidu.com
// 浏览器型号和操作系统型号
User-Agent:
Connection:keep-alive
响应协议
- 响应协议格式:
- 响应行
- 响应头(属性名:属性值)
- 空行
- 响应体
// 响应行: http 协议版本 响应状态码 响应状态码的解释
HTTP/1.1 200 OK
// 缓存处理
Cache-Control:no-cache
Connection:Keep-Alive
// 响应内容压缩格式
Content-Encoding:gzip
// 响应内容的 MIME 类型, 文本类型的内容需要指定编码
Content-Type:text/html;charset=utf-8
// 响应时间
Date:Fri, 22 Sep 2017 03:12:21 GMT
// 服务器的版本信息
Server:apache
// 服务器响应给客户端的 Cookie
Set-Cookie:BDSVRTM=453; path=/
// 响应的文件大小
Content-Length: 646
响应状态码
- 200 : 请求成功
- 以"3"开头,全要转接
- 302 : 重定向, 表示服务器要求浏览器重新发送一个请求,
服务器会在响应信息中加入一个 Location, 它指定了浏览器需要重新请求的 URL 地址 - 304 : 与缓存相关, 只对静态类型( 如 html) 文件有效
- 302 : 重定向, 表示服务器要求浏览器重新发送一个请求,
- 以"4"开头: 客户端错误
- 404 : 请求的资源没有找到, 即客户端错误的请求了不存在的资源
- 以"5"开头: 服务端错误
其他响应头
- 下面三样响应头一起使用, 目的是告诉浏览器不要缓存
- Expires: -1;
- Cache-Control: no-cache;
- Pragma: no-cache;
- 自动刷新响应头
- Refresh:3;url=http://baidu.com
- 表示浏览器会在 3 秒之后请求 http://baidu.com
HTML 中指定响应头
- 在 HTML 页面中可以使用 "<meta http-equiv="属性名" content="属性值"> 来指定响应头
GET 和 POST 请求
- GET 请求没有请求体
- POST 请求可以有请求体
// POST 请求
// Referer: http://localhost:8080/hello/index.jsp
// 表示请求来自哪个页面. 而在浏览器地址栏中直接输入的地址, 没有 Referer 请求头
// 可以通过 Referer 统计访问量或者防盗链
// Content-Type: application/x-www-form-urlencoded
// 表示表单中的数据会自动使用 url 进行编码
// url 编码的数据都是以 "%" 为前缀, 后面跟随两位的 16 进制.
// "张三" 的 url 编码结果: %E5%BC%A0%E4%B8%89
**参考资料:**
- [JavaWeb 视频教程](https://www.bilibili.com/video/av12752958/#page=14)
HTTP 协议介绍的更多相关文章
- TCP/IP 协议介绍
转自http://blog.jobbole.com/104886/ 一.TCP/IP 协议介绍 在介绍 HTTP 协议之前,先简单说一下TCP/IP协议的相关内容.TCP/IP协议是分层的,从底层至应 ...
- 第二章 ZAB协议介绍
ZAB ( ZooKeeper Atomic Broadcast , ZooKeeper 原子消息广播协议)是zookeeper数据一致性的核心算法. ZAB 协议并不像 Paxos 算法那样,是一种 ...
- JSON-RPC轻量级远程调用协议介绍及使用
这个项目能够帮助开发人员利用Java编程语言轻松实现JSON-RPC远程调用.jsonrpc4j使用Jackson类库实现Java对象与JSON对象之间的相互转换.jsonrpc4j包含一个JSON- ...
- [转]流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)
[转]流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls) http://blog.csdn.net/tttyd/article/details/12032357 RTP ...
- Python基础教程之udp和tcp协议介绍
Python基础教程之udp和tcp协议介绍 UDP介绍 UDP --- 用户数据报协议,是一个无连接的简单的面向数据报的运输层协议.UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但 ...
- 常用音频协议介绍&&有关音频编码的知识与技术参数
(转载)常用音频协议介绍 会议电视常用音频协议介绍及对比白皮书 一.数字化音频原理:声音其实是一种能量波,因此也有频率和振幅的特征,频率对应于时间轴线,振幅对应于电平轴线.通常人耳可以听到的频率在20 ...
- 各种开源协议介绍 BSD、Apache Licence、GPL V2 、GPL V3 、LGPL、MIT_转
转自:各种开源协议介绍 BSD.Apache Licence.GPL V2 .GPL V3 .LGPL.MIT 现今存在的开源协议很多,而经过Open Source Initiative组织通过批准的 ...
- OSPF协议介绍及配置 (上)
OSPF协议介绍及配置 (上) 一.OSPF概述 回顾一下距离矢量路由协议的工作原理:运行距离矢量路由协议的路由器周期性的泛洪自己的路由表,通过路由的交互,每台路由器都从相邻的路由器学习到路由,并且加 ...
- VRRP协议介绍--转
http://www.cnblogs.com/jony413/articles/2697404.html VRRP协议介绍 参考资料: RFC 3768 1. 前言 VRRP(Virtual Rout ...
- SNMP协议介绍
SNMP协议介绍 一.什么是SNMP SNMP:“简单网络管理协议”,用于网络管理的协议.SNMP用于网络设备的管理.SNMP的工作方式:管理员需要向设备获取数据,所以SNMP提供了 “读”操作:管理 ...
随机推荐
- codility上的问题(34) Fluorum 2014
好久没写codility的题了.一来没时间,二来有的题目不太好分析.这个题比較有意思,我还没有给出很严格的证明.
- HDU 4969 Just a Joke(积分)
HDU 4969 Just a Joke pid=4969" target="_blank" style="">题目链接 推公式,r′=dr/d ...
- 文件上传之 commons-fileupload(二)
对commons fileupload上传组件的简单封装 在上一篇文章<利用Jakarta commons fileupload组件实现多文件上传>中,我介绍了commons fileup ...
- VMware虚拟机实用经验总结十一条
转:http://article.pchome.net/content-948404.html 1.VMware虚拟机实用经验之支持的Guest OS: VMWare支持如下Guest OS:MS-D ...
- IPC之SystemV
svipc - System V interprocess communication mechanisms linux实现的System V interprocess communication ( ...
- jQuery插件学习笔记
近期在研究jQuery插件,插件编写的目的是给已经有的一系列方法或函数做一个封装,以便在其它地方反复使用,方便后期维护. JQuery除了提供一个简单.有效的方式进行管理元素以及脚本,它还还提供了例外 ...
- Linux网络实时监控配置
Linux监控邮件发送配置 网络状态监控 网络状态:netstat 各个状态的总计,详情:以及重点端口的详细连接情况(22,25,80,3306,8080),打印客户端连接数最多的ip. 邮件报告当前 ...
- datatable.js 服务端分页+fixColumns列固定
前言 记得还是15年的时候,工作需要,独自写后台管理系统..记得那时候,最让我头疼的不是后台逻辑,而是数据的列表展示. 列很多的时候,页面显示问题;分页样式问题;表格样式问题;数据加载...很多细节的 ...
- Android 启动界面的实现(转载)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...
- HBase之HFile解析
Sumary: Protobuf BinarySearch 本篇主要讲HFileV2的相关内容,包括HFile的构成.解析及怎么样从HFile中快速找到相关的KeyValue.基于Hbase 0.98 ...