HTTP是什么

HTTP是HyperText Transfer Protocol的缩写,中文就是超文本传输协议,所谓的超,是个学术用语,是基于某种事物增加了更多的信息维度,比如超像素xxx之类的.

协议是什么,协议说白了就是约定,约定就是模板,就是表格,就和你去银行办手续一样,客户不知道要提供什么信息,银行又不能一个客户一个客户教,所以就准备一样表格.

HTTP的脑洞(无事实根据)

为什么会有HTTP叫做报文呢,因为我觉得以前最早大家都是通过电报机来远程快速传递信息.由于每个字都老贵了,所以能简短就简短.就有了报文这个东西,一般包含以下信息

发件人

收件人

干什么

所以说到了现在都超文本这么吊的东西了,说白了还是和电报一样,滴滴滴,你发给服务器一个电报,服务器看看,然后滴滴滴,回给你一个电报.这就是所谓的超文本传输协议.

但是吊就吊在这个超字上,现在电脑便宜了,大街上一百块一台,所以说可以发更多的信息了,所谓更多的信息,就是除了文本本身的内容外,还可以携带一些网络参数以及约定的信息等,是指的信息维度的增加(除去内容还有其它维度),而不是文本内容变长了.

所以说HTTP通信,本质上和以前的电报还是没有什么区别的,唉,人类真是聪明又愚蠢啊.

HTTP报文格式

就像刚刚说的,一张白纸,怎么写才能让两边指导什么写的是什么呢?就牵扯到格式了,这种格式约定就是协议.HTTP其实就是一张这样的表单

HTTP报文头

就如同刚刚脑洞中以电报举例一样,HTTP的报头主要是一些参数信息,类似于

发件人

收件人

并不包含实际文本内容

HTTP报文头首行有3个数据,来分辨这个是Request报文还是Response报文,接下来每行是一个字段和一个内容,这些字段都是W3C规定好的,你当然可以自定义,但是只不过通用标准不认罢了.所以说字段相当于表格中

姓名: some SB

里的姓名,”some SB”这个内容可能会变,但是不管怎么发报文,姓名这一栏不会变.

HTTP报文体

HTTP报文体是开始于HTTP报文头遇到一个仅有换行的空行开始,这也是为什么会有CRLF换行符注入这种攻击,因为报文都是通过换行符来判断哪里是内容开始,报文头结束.可以通过换行符的注入,当报文头提前结束,进入报文体.

HTTP的Request和Response

就像刚刚说的一样,虽然HTTP都是基于报文,但是你发给服务器的电报和服务器返回给你的电报是不同的,他们的主要区别在于两点

报文头的字段

报文体是否可以省略

在Request中报文体并不是必须的,有些Request方法中可以省略,而Response中是不可以省略的,如果报文体因为各种情况没有了,那么就是空返回.

HTTP报文头的字段

通用字段Connection

Content-Encoding

Content-Length

Content-Type

Transfer-Encoding

请求Request字段Accept

Accept-Encoding

Authorization

Cookie

Host

If-Modified-Since

If-None-Match

Origin

Referer

User-Agent

响应Response字段Access-Control-Allow-Origin

Cache-Control

ETag

Expires

Location

Pragma

Server

Set-Cookie

WWW-Authenticate

X-Frame-Options

HTTP的Request方法

HTTP一共有六种Request方法,其中最重要的是GET和POST方法,除了这两个外还有剩下四种,但是不太常用.

HEAD

TRACE

OPTIONS

PUT

虽然不太常用,并不是不用注意

比如有根据TRACE的机制进行攻击的方法.TRACE方法主要用于诊断,服务器会返回Request里所有的报文头诶报文内容信息,所以在某下情况下,如果本地无法获取到Request的报文头,可以通过伪造链接,使用TRACE方法从返回报文里都出来Request中的信息.

http协议报文体_HTTP报文基本概念学习相关推荐

  1. http协议报文体_HTTP协议详解

    导读 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准.HTTP是一个基于TCP/IP ...

  2. http协议报文体_Http协议详解 - 榴莲黑芝麻糊的个人空间 - OSCHINA - 中文开源技术交流社区...

    1.简介 HTTP协议(Hyper Text Transfer Protocol,超文本传输协议),是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议. H ...

  3. http协议报文体_http协议详解之响应报文 3

    --------------响应示例--------------------------response #状态行 HTTP/1.1 200 OK #协议及版本号.状态码.状态描述 #消息报头 Dat ...

  4. http协议报文体_HTTP协议扫盲(七)请求报文之 GET、POST-FORM 和 POST-FILE

    ORACLE临时表空间总结 临时表空间概念 临时表空间用来管理数据库排序操作以及用于存储临时表.中间排序结果等临时对象,当ORACLE里需要用到SORT的时候,并且当PGA中sort_area_siz ...

  5. http协议报文体_Java面试中可能涉及到的通信协议类问题

    HTTP 互联⽹通信协议HTTP协议,是⼀个⽆状态协议.这意味着,所有的状态都保存在服务器端.拉勾IT课小编为大家分解 HTTP协议⾥⾯,四个表示操作⽅式的动词:GET.POST.PUT.DELETE ...

  6. HttpClient post请求 第三方接口验证 发送参数 请求报文头和报文体

    1     HttpClient client = HttpClientUtils.getConnection();//得到client HttpUriRequest post = HttpClien ...

  7. HttpsURLConnection报文头报文体使用详解

    HttpsURLConnection报文头报文体使用 POST请求 GET请求 子线程中调用 必须在子线程中调用 POST请求 private static String TAG = "Ht ...

  8. http accept字段有用吗_http协议(六)报文首部

    参考:老张http协议(六)报文首部 报文(message)是网络中交换与传输的数据单元,即站点一次性要发送的数据块.报文包含了将要发送的完整的数据信息,其长短很不一致,长度不限且可变 报文也是网络传 ...

  9. HTTP响应报文体和长连接详解

    目录 1.HTTP响应报文体 2.什么是HTTP的长连接? 3.如何使用HTTP的长连接? 4.Java发送HTTP请求并使用长连接 1.HTTP响应报文体 HTTP响应体是服务器返回给客户端的数据, ...

最新文章

  1. 使用WinPcap和libpcap类库读写pcap文件(001)开发环境配置
  2. linux 设置登录失败n次 锁定账户 /etc/pam.d/system-auth
  3. 3行代码实现从excel中读取出某列元素为所想要的元素集合中的所有行
  4. centos 安装mysql5.7_Zabbix 4.2.5 安装部署实践详解
  5. elementui 下拉框回显_element-ui 中el-select表单不回显和校验不通过的问题
  6. Vue 3响应式原理及实现
  7. eclipse部署web项目
  8. 给mysql数据添加一个只拥有一张表的权限
  9. Inna and Sequence
  10. 查询去重_【Freya的MySQL课堂】DQL基础查询
  11. caffe linux 教程,Caffe 深度学习入门教程 - 安装配置Ubuntu14.04+CUDA7.5+Caffe+cuDNN_Linux教程_Linux公社-Linux系统门户网站...
  12. 代码重构之旅(一) 项目结构
  13. 查找出/tmp目录下面修改时间是7天以前,大小在50k到2M之间,并以.log结尾的文件...
  14. 牛腩新闻发布系统—发布网站
  15. 数字电子技术之逻辑门电路
  16. 软考论文-高项-进度管理、风险管理
  17. 小米2s刷原生安卓_小米2/2s/2a刷android4.4教程(附2/2s/2a安卓4.4卡刷包下载)
  18. 6场圆桌,20+演讲,48小时聚会, 2020全球区块链算力大会圆桌议题首度曝光
  19. MQTT设置retained的作用
  20. 有监督、半监督、无监督、弱监督、自监督

热门文章

  1. ELK入门01—Elasticsearch安装
  2. 让物联网真正起飞的关键:无线充电
  3. 第四章 大网高级   NSSA
  4. php 扒取网页数据
  5. OC-成员变量的作用域
  6. 微信朋友圈也可以发语音你们造吗?
  7. Android中让Service被关闭后再重新启动
  8. php面向对象之单表操作类
  9. 767. 重构字符串
  10. leetcode1291. 顺次数(回溯)