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协议简要的更多相关文章

  1. TCP/UDP协议简要梳理

    TCP/UDP协议简要梳理 TCP TCP,Transmission Control Protocol,传输控制协议是一种面向连接的.可靠的.基于字节流的传输层通信协议.在因特网协议族中,TCP所在的 ...

  2. HTTP协议简要介绍

    1. 网络基础 TCP/IP 通常使用的网络是在TCP/IP协议簇基础上运作的. HTTP属于它内部的一个子集. TCP/IP分为4个层次, 应用层, 传输层, 网络层, 链路层. (Applicat ...

  3. i2c协议简要分析(转载)

    声明 本文大部分内容为转载,因此标定为转载 源地址: http://www.cnblogs.com/zym0805/archive/2011/07/31/2122890.html http://blo ...

  4. Rsyslog的三种传输协议简要介绍

    rsyslog的三种传输协议 rsyslog 可以理解为多线程增强版的syslog. rsyslog提供了三种远程传输协议,分别是: 1. UDP 传输协议 基于传统UDP协议进行远程日志传输,也是传 ...

  5. 微店APP协议简要分析

    1.通过抓包软件charles进行抓包,点击微信收款后,抓包内容都是加密处理过  2.加载分析定位这些字段的加密函数. WDTNThorParameterProcessor HTTPBody:task ...

  6. FPGA作为从机与STM32进行SPI协议通信---Verilog实现 [转]

    一.SPI协议简要介绍 SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口.SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用 ...

  7. FPGA作为从机与STM32进行SPI协议通信---Verilog实现

    一.SPI协议简要介绍 SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口.SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用 ...

  8. Modbus 协议

    转载:https://www.cnblogs.com/DreamRecorder/p/9081127.html 一.Modbus 协议简介     Modbus 协议是应用于电子控制器上的一种通用语言 ...

  9. MQTT 协议学习:000-有关概念入门

    背景 从本章开始,在没有特殊说明的情况下,文章中的MQTT版本均为 3.1.1. MQTT 协议是物联网中常见的协议之一,"轻量级物联网消息推送协议",MQTT同HTTP属于第七层 ...

随机推荐

  1. 剑指Offer之调整数组顺序使奇数位于偶数前面

    题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变.   思路:将奇数放进 ...

  2. 发光加载环动画-纯CSS动画效果-如何创建CSS3旋转预加载器(参照https://www.bilibili.com/video/BV1V4411C7z5?from=search&seid=9741275927942612817)

    //css部分 body{ margin:; padding:; background: #262626; } .ring{ position: absolute; top:50%; left: 50 ...

  3. 最短路径——Dijkstar算法

    背景:本文是在小甲鱼数据结构教学视频中的代码的基础上,添加详细注释而完成的.该段代码并不完整,仅摘录了核心算法部分,结合自己的思考,谈谈理解. Dijkstar算法理解: Dijkstar算法的核心思 ...

  4. RabbitMQ--其他几种模式

    本文是作者原创,版权归作者所有.若要转载,请注明出处. 本文RabbitMQ版本为rabbitmq-server-3.7.17,erlang为erlang-22.0.7.请各位去官网查看版本匹配和下载 ...

  5. jchdl - GSL实例 - Concat

    https://mp.weixin.qq.com/s/oJY6Xj9_oM1gSmvH_dHkJg   Concat节点把多根输入线线组合成一排线输出.   参考链接 https://github.c ...

  6. python3 的setter方法及property修饰

    #!/usr/bin/env pthon#coding:utf-8 class person(object): def __init__(self,name,sex,age,surface,heigh ...

  7. ASP.NET中使用Entity Framework开发增删改查的Demo(EF增删改查+母版页的使用)

    这里更多的是当作随身笔记使用,记录一下学到的知识,以便淡忘的时候能快速回顾 这里是该项目的第二部分, 第一部分 第二部分(当前部分) 大完结版本 此Demo是新建了一个音乐类型的web,然后使用母版页 ...

  8. (Java实现) 洛谷 P1098 字符串的展开

    import java.util.ArrayList; import java.util.Scanner; public class zifuchuandezhankai { static Array ...

  9. Java实现 蓝桥杯 算法训练 区间k大数

    算法训练 区间k大数查询 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个. 输入格式 第一行包含一个数n,表示序列长度. 第二 ...

  10. Java实现 LeetCode 486 预测赢家

    486. 预测赢家 给定一个表示分数的非负整数数组. 玩家1从数组任意一端拿取一个分数,随后玩家2继续从剩余数组任意一端拿取分数,然后玩家1拿,--.每次一个玩家只能拿取一个分数,分数被拿取之后不再可 ...