http/1.1协议初识

learn-zy learn-zy     2023-03-08     486

关键词:

http协议
* 即超文本传输协议。它规定了浏览器与服务器之间的通讯规则。
* http是基于请求/响应模式的,所以分为请求协议和响应协议

===================================

请求

  请求内容就是客户端发送给服务器的数据!

1. 请求格式:
* 请求首行
* 请求头
* 空行
* 请求体(或称之为请求正文)

2. 请求方法
* 常见请求方法有GET和POST
* 在浏览器地址栏中发送请求,以及点击超链接都是GET请求
* 提交表单可以发送GET请求,以及POST请求
* GET请求没有请求体,但空行是存在的
* POST请求是存在请求体的

3. 使用HttpWatch获取请求信息
* 请求行:请求方法 请求路径 请求协议及版本,例如:GET /hello/index.jsp HTTP/1.1  :GET请求,请求服务器路径为/hello/index.jsp,协议为1.1
* 请求头:请求头就是一些键值,格式为:头:值,例如:Host:localhost 请求的主机名为localhost

* 空行:就是一个空行,用来与请求体分隔

* 请求体:GET方法没有请求体,POST才有请求体,请求体内容为:参数名=参数值&参数名=参数值,其中参数值为中文,会使用URL编码。

4. 常见请求头
* Host:请求的服务器主机名
* User-Agent:客户端浏览器与操作系统相关信息
* Accept-Encoding:客户端支持的数据压缩格式
* Connection:客户端支持的连接方式
* Cookie:客户端发送给服务器的“小甜点”,它服务器寄存在客户端的。如果当前访问的服务器没有在客户端寄存东西,那么就不会存在它!
* Content-Length:请求体的长度
* Referer:当前发出请求的地址,例如在浏览器地址栏直接访问服务器,那么没有这个请求头。如果是在www.baidu.com页面上点击链接访问的服务器,那么这个头的值就是www.baidu.com
> 作用1:统计来源
> 作用2:防盗链
* Content-Type:如果是POST请求,会有这个头,默认值为application/x-www-form-urlencoded,表示请求体内容使用url编码。

===================================

响应

  响应就是服务器发送给客户端的数据!

1. 响应格式:
* 响应首行
* 响应头
* 空行
* 响应体(或称之为响应正文)

2. 状态码
  响应首行的结构:协议及版本 状态码 状态码说明,例如:HTTP/1.1 200 OK

* 200:请求成功
* 302:请求重定向
* 304:请求资源没有改变
* 404:请求资源不存在,属性客户端错误
* 500:服务器内部错误

3. 响应头
* Content-Type:响应正文的MIME类型,例如image/jpeg表示响应正文为jpg图片,例如text/html;charset=utf-8表示响应正文为html,并且编码为utf-8编码。浏览器会通过这一信息来显示响应数据
* Content-Length:响应正文的长度
* Set-Cookie:服务器寄存在客户端的“小甜点”,当客户端再次访问服务器时会把这个“小甜点”还给服务器
* Date:响应时间,可能会有8小时的误差,因为中国的时区问题

  通知客户端浏览器不要缓存页面的响应头:
* Expires:-1
* Cache-Control: no-cache
* Pragma: no-cache

  自动刷新响应头,浏览器会在3秒钟后自动重定向到传智主页
* Refresh: 3;url=http://www.itcast.cn

4. 状态码304
 相关头信息
* Last-Modified:响应头,表示当前资源的最后修改时间;
* If-Modified-Since:请求头,表示缓存的资源最后修改时间;

 状态码304:表示访问的资源没有改变

1. 客户端首次访问服务器的静态资源index.html,服务器会把index.html响应给客户端,而且还会添加一个名为Last-Modified的响应头,它说明了当前index.html的最后修改时间
2. 客户端收到响应后,会把index.html缓存在客户端上,而且还会把Last-Modified缓存起来。
3. 客户端第二次请求index.html时,会添加名为If-Modified-Since的请求头,它的值是上次服务器响应头Last-Modified,服务器获取到客户端保存的最后修改时间,以及当前资源的最后修改时间进行比较,如果相同,说明index.html没有改动过,那么服务器不会发送index.html,而是响应状态码304,即通知客户端资源没有改变,你可以使用自己的缓存。

 

username=%E5%BC%A0%E4%B8%89&password=123

-128~127、-128~127、-128~127、-128~127、-128~127、-128~127

字节+128 --> 转换成16进制 --> 添加%这个前缀
36 --> %A4















































PHP:获取 HTTP 协议版本(HTTP/1.1 与 HTTP/2)

】PHP:获取HTTP协议版本(HTTP/1.1与HTTP/2)【英文标题】:PHP:GetHTTPProtocolVersion(HTTP/1.1vsHTTP/2)【发布时间】:2016-04-1513:51:49【问题描述】:到目前为止,我的php应用程序都假定HTTP1.1无处不在。所以我像这样定义了所有标题:header("H... 查看详情

http协议的前世今生http1.0http1.1和http2.0

本篇博客将从HTTP协议的概念出发,分别介绍HTTP协议各个版本的特点,以及对HTTP协议状态码和HTTPS协议进行说明。首先,我们先来了解下HTTP协议的概念。什么是HTTP协议HTTP协议 的全称为HyperTextTransferProtocol(超文... 查看详情

http协议的前世今生http1.0http1.1和http2.0

本篇博客将从HTTP协议的概念出发,分别介绍HTTP协议各个版本的特点,以及对HTTP协议状态码和HTTPS协议进行说明。首先,我们先来了解下HTTP协议的概念。什么是HTTP协议HTTP协议 的全称为HyperTextTransferProtocol(超文... 查看详情

http/1.1协议支持的8种请求方法

...首部OPTIONS询问支持的方法TRACE追踪路径CONNECT要求用隧道协议连接代理 HTTP请求的方法:HTTP/1.1协议中共定义了八种方法(有时也叫“动作”),来表明Request-URL指定的资源不同的操作方式 1、OPTIONS用来查询针对请求URI指定... 查看详情

初识django(代码片段)

HTTP协议  超文本传输协议四大特性:  1.基于TCP/IP作用在应用层上的协议  2.基于请求响应  3.无连接  4.无状态数据格式之请求  请求首行  请求头(一堆k,v键值对)  /r/n  请求体数据格式值响应  响应首行... 查看详情

http代理协议http/1.1的connect方法

我们平时使用HTTP协议无非就是GET、POST这些方法,但是HTTP的内容远不止那些。今天就来说说HTTP代理使用的CONNECT。这个不是在网页开发上用的,如果没兴趣就跳过吧。  APACHE只是作为网页的服务器被使用的,不会支持这个方法... 查看详情

http协议

Web开发是和HTTP协议打交道的,必须了解,HTTP协议版本:HTTP/0.9HTTP/1.0HTTP/1.1现在主流是HTTP/1.1版本HTTP协议分析工具:1.DebugBarHTTP(S)标签的内容,免费的,只能分析当前浏览器中的内容2.httpwatch 收费的,只能分析当前浏览器中的内容,推荐使用... 查看详情

http/1.1学习

发现对于HTTP协议不能脱口而出,故而怒翻资料,RFC2616。在其abstract中是这么说HTTP的,应用层协议,generic、无状态。其特点之一是thetypingandnegotiationofdatarepresentation,allowingsystemstobebuiltindependentlyofthedatabeingtransferred. Messages以一 查看详情

http协议

http协议协议:是一种规则或者规定tcp/ip协议:规则了tcp客户端与tcp服务器数据的通讯格式1.知识点是什么:http协议2.知识点有什么:规定浏览器与服务器(tcp服务器)之间的数据通讯格式3.请求的协议格式<客户端(浏览器)发数据给服... 查看详情

http协议简介(代码片段)

关于HTTP协议的基本介绍。HTTP协议是基于TCP/IP协议之上的应用层协议,主要用于规定互使用联网中客户端和服务器之间的通信格式,不关心具体传输细节,默认80端口。对于Web开发,不管是前端还是后端开发,了解HTTP协议是必备... 查看详情

http/1.1请求方法

??HTTP(HypertextTransferProtocol,超文本传输协议)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。默认端口为80。??设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。通过HTTP... 查看详情

Servlet 过滤器 - 错误 404 - 未从 RFC 2068 超文本传输​​协议中找到 - HTTP/1.1 [重复]

】Servlet过滤器-错误404-未从RFC2068超文本传输​​协议中找到-HTTP/1.1[重复]【英文标题】:ServletFilter-Error404--NotFoundFromRFC2068HypertextTransferProtocol--HTTP/1.1[duplicate]【发布时间】:2014-04-1415:34:46【问题描述】:我在servlet过滤器中使用以... 查看详情

http

 1.1HTTP协议HTTP是hypertexttransferprotocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程。客户端连上web服务器后,若想获得web服务器中的某个web资源,需遵守一定... 查看详情

wireshark数据包分析之http协议包解读

*此篇博客仅作为个人笔记和学习参考GET方法的数据包分析HypertextTransferProtocolGET/HTTP/1.1\r\n#请求行信息#[ExpertInfo(Chat/Sequence):GET/HTTP/1.1\r\n]#专家信息#RequestMethod:GET#请求的方法#RequestURI:/#请求的URI#RequestVersion:HTTP/1.1#请求的版本# 查看详情

每周分享之二http协议

本次分享http协议,共分为三部分,这是第二部分,主要讲解请求与响应的字段,以及状态码。以http/1.1版本的一个完整的请求与响应作为例子 http请求信息由三部分组成1、请求方法(GET/POST)、URI、协议/版本2、请求头(RequestH... 查看详情

详解http协议版本(http/1.01.12.03.0区别)(代码片段)

...存HTTP/1.1特点优缺点长连接管道传输HTTP/1.0比较HTTP/1.1HTTP协议层次结构图HTTP/2.0头部压缩二进制格式多路复用服务端推送TCP导致队头阻塞HTTP/3.0无队头阻塞连接建立连接迁移HTTP1.0HTTP/1.0是无状态、无连接的应用层协议。无连接 无... 查看详情

详解http协议版本(http/1.01.12.03.0区别)(代码片段)

...存HTTP/1.1特点优缺点长连接管道传输HTTP/1.0比较HTTP/1.1HTTP协议层次结构图HTTP/2.0头部压缩二进制格式多路复用服务端推送TCP导致队头阻塞HTTP/3.0无队头阻塞连接建立连接迁移HTTP1.0HTTP/1.0是无状态、无连接的应用层协议。无连接 无... 查看详情

http/0.9http/1.0http/1.1http/2http/3各版本之间的区别?(代码片段)

...频、视频等超文本数据的约定和规范。HTTP通常跑在TCP/IP协议栈之上,依靠IP协议实现寻址和路由、TCP协议实现可靠数据传输、DNS协议实现域名查找、SSL/TLS协议实现安全通信。当然,WebSocket、HTTPDNS依赖于HTTP。HTTP/0.9 GET/index.htm... 查看详情