HTTP协议简要
HTTP协议简要
HTTP协议是指超文本传输协议,简单来说就是一种规则,允许将HTML文档从Web服务器传送到Web浏览器。
HTTP请求
HTTP请求包括三部分:请求行(请求方法),请求头(消息报头)和请求正文。
例如:POST /login.php HTTP/1.1 //请求行
HOST:www.xxser.com //请求头
User-Agent::Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0
//空白行,代表请求头结束
Username=admin&password=admin //请求正文
请求行又可以分为三部分,一个是POST请求,一个是在域名根目录下的login.php里,还有一个是说明使用的是HTTP1.0版本;
请求头是第二行到空白行,HOST代表请求的地址,User-Agent(简称UA)是浏览器UA标识;
请求正文这一行最常出现在POST请求当中,而且可选。
HTTP响应
HTTP响应包括三部分:响应行,响应头(消息报头)和响应正文。
一般HTTP响应的第一行为响应行,其中有HTTP版本,状态码以及消息;第二行到空白行是响应头,是服务器发给客户端的;最后是响应正文,是服务器向客户端发送的HTML数据。
HTTP状态码
HTTP协议中的状态码一般由三位数字组成,第一位数字定义了相应的类型,只有五种。
1XX:请求已被成功接收,继续处理,范围100~101。
2XX:成功,服务器成功的处理了请求,范围200~206。
3XX:重定向,资源已经被移动,并且会告诉新的资源位置,浏览器重新访问。范围300~305。
4XX:客户端错误状态码,最常见的是请求了一个不存在URL,范围400~415。
5XX:Web服务器自身出错,服务器内部有问题。范围500~505。
常见的状态码有:
200:客户端请求成功。
302:重新定向。
400:客户端请求有语法错误,不能被服务器理解。
401:服务器请求未经授权。
403:服务器接收到了请求,但是拒绝提供服务。
404:访问资源不存在。
500:服务器内部出错。
503:当前服务器不能处理请求,请稍后再试。
HTTP消息
HTTP消息也叫HTTP头,分四部分,一是请求头,二是响应头,三是普通头,四是实体头。
请求头
请求头只出现在HTTP请求中,常用的HTTP请求头如下。
Host:用于指定请求资源的主机和端口号。
User-Agent:浏览器UA标识,可以向服务器显示用的浏览器和系统信息。
Referer:显示用户是从什么界面来到本界面的。例如:Referer:www.xxser.com/login.php。表示用户是从login.php界面来到本界面的。相当于一个显示上个页面的URL。
Cookie:一段文本,很重要,表示请求者身份。
Range:请求实体的部分内容,多线程下载含有Range头。
x-forward-for:代表请求端的IP。
Accept:指定客户端接受哪些类型的信息。例如:Accept:text/html,表明客户端希望接受HTML文本。
响应头
是服务器根据请求向客户端发送的HTTP头。常见的HTTP头如下。
Server:服务器使用的Web服务器的名称。
Set-cookie:向客户端设置Cookie,通过这个可以查看到服务器发送给客户端的Cookie信息。
Last-Modified:可以看到资源修改的最后时间。
Location:服务器通过这个告诉浏览器访问什么页面,通常配合302状态码使用。
Refresh:服务器通过这个告诉浏览器定时刷新浏览器。
实体头
请求和响应都能传送一个实体头。
Content-Type:向接收方指示实体的介质类型。
Content-Encoding:被用作媒体类型的修饰符,这个值指示了已经被应用到实体正文的附加内容的编码。
Content-Length:用于指明实体正文的长度,以字节方式储存的十进制数字来表示。
Last-Modified:用于指示资源的最后修改日期和时间。
HTTP协议简要的更多相关文章
- TCP/UDP协议简要梳理
TCP/UDP协议简要梳理 TCP TCP,Transmission Control Protocol,传输控制协议是一种面向连接的.可靠的.基于字节流的传输层通信协议.在因特网协议族中,TCP所在的 ...
- HTTP协议简要介绍
1. 网络基础 TCP/IP 通常使用的网络是在TCP/IP协议簇基础上运作的. HTTP属于它内部的一个子集. TCP/IP分为4个层次, 应用层, 传输层, 网络层, 链路层. (Applicat ...
- i2c协议简要分析(转载)
声明 本文大部分内容为转载,因此标定为转载 源地址: http://www.cnblogs.com/zym0805/archive/2011/07/31/2122890.html http://blo ...
- Rsyslog的三种传输协议简要介绍
rsyslog的三种传输协议 rsyslog 可以理解为多线程增强版的syslog. rsyslog提供了三种远程传输协议,分别是: 1. UDP 传输协议 基于传统UDP协议进行远程日志传输,也是传 ...
- 微店APP协议简要分析
1.通过抓包软件charles进行抓包,点击微信收款后,抓包内容都是加密处理过 2.加载分析定位这些字段的加密函数. WDTNThorParameterProcessor HTTPBody:task ...
- FPGA作为从机与STM32进行SPI协议通信---Verilog实现 [转]
一.SPI协议简要介绍 SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口.SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用 ...
- FPGA作为从机与STM32进行SPI协议通信---Verilog实现
一.SPI协议简要介绍 SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口.SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用 ...
- Modbus 协议
转载:https://www.cnblogs.com/DreamRecorder/p/9081127.html 一.Modbus 协议简介 Modbus 协议是应用于电子控制器上的一种通用语言 ...
- MQTT 协议学习:000-有关概念入门
背景 从本章开始,在没有特殊说明的情况下,文章中的MQTT版本均为 3.1.1. MQTT 协议是物联网中常见的协议之一,"轻量级物联网消息推送协议",MQTT同HTTP属于第七层 ...
随机推荐
- win10系统systeminfo命令的过滤用法
一.背景: 在win10系统使用systeminfo命令可以查看windows系统信息,但是,默认显示的是全部信息,由于显示内容过多,这对查看特定信息带来一定麻烦.考虑使用该命令时能否使用过滤功能,直 ...
- OAuth + Security - 3 - JWT令牌
为什么使用JWT令牌 在上面的资源服务器中,通过配置,我们了解到,当我们拿着token去获取资源时,程序会先去调用远程认证服务器的端点去验证解析token,或者在本地解析校验token,这样毫无疑问, ...
- Rocket - debug - TLDebugModuleInner - ABSTRACTAUTO
https://mp.weixin.qq.com/s/adSB7lmKcqmwVd80-gmdIw 简单介绍TLDebugModuleInner中ABSTRACTAUTO寄存器的实现. 1. ABST ...
- Redis 入门到分布式 (八)Redis Sentinel
个人博客网:https://wushaopei.github.io/ (你想要这里多有) sentinel-目录 主从复制高可用 安装配置 实现原理 架构说明 客户端连接 常见开发运维问题 一. ...
- Linux (三) 基础命令 上
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一 . 背景知识 1. Linux系统中一切皆文件 在Linux系统中任何东西都是以文件形式来存储的.这 ...
- Java实现 蓝桥杯 算法训练 最大最小公倍数
算法训练 最大最小公倍数 时间限制:1.0s 内存限制:256.0MB 问题描述 已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少. 输入格式 输入一个正整数N. 输出格式 ...
- Java实现 LeetCode 384 打乱数组
384. 打乱数组 打乱一个没有重复元素的数组. 示例: // 以数字集合 1, 2 和 3 初始化数组. int[] nums = {1,2,3}; Solution solution = new ...
- 第六届蓝桥杯JavaA组省赛真题
解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.熊怪吃核桃 题目描述 森林里有一只熊怪,很爱吃核桃.不过它有个习惯,每次都把找到的核桃分成相等的两份,吃掉一份,留一份.如果不能等分, ...
- FPGA之SPI SD卡读操作
这几天在FPGA调试与SD通信,读SD卡里的图片,之前接触32时没有去研究过SD卡,不太熟悉操作流程,在网上找了很多资料,也看了几个32开发板的资料,但大多数都讲得不是特别清楚,只能瞎操作了一番,在别 ...
- 【JAVA习题二十九】809*??=8*??+9*??+1 其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。
package erase; public class 八九与问好两位数的乘积和 { public static void main(String[] args) { int m,n;//m十位,n个 ...