http协议:http请求、http响应、间隔时间跳转页面、禁用浏览器缓存
转自:https://blog.csdn.net/u013372487/article/details/46991623
http协议
1. http协议是建立在 tcp/ip协议基础上.
2. 我们的web开发数据的传输都是依赖于http协议.
3. http协议全称是 超文本传输协议
http协议的-http请求(request)
基本结构
请求行
消息头
<----空行
消息体(实体内容)
举例:
GET/test/hello.html HTTP/1.1
【表示发送的get请求, 请求资源是/test/hello.html 】
Accept: */* 【表示客户端可以接受任何数据】
Referer: http://localhost:80/test/abc.html 【1.表示我是从哪里来】
Accept-Language:zh-cn 【页面语言】
User-Agent:Mozilla/4.0 【告诉服务我的浏览器的内核,操作系统】
Accept-Encoding:gzip, deflate 【表示接受什么样的数据压缩格式.】
Host:localhost:80 【主机:80】
Connection:Keep-Alive 【表示不要立即断掉我们的请求.】
现在我们想知道,客户端究竟给服务器发送的内容
如果我这个http1.php. 不希望 192.168.1.33 这个用户访问.
在服务器端,我们可以通过$_SERVER来获取我们需要的信息
重要的有:
HTTP_HOST
REMOTE_ADDR 访问该页面的ip
DOCUMENT_ROOT 可以获取 apche的主目录
REQUEST_URI 可以获取 请求的资源名
http请求有两种主要的方式
get / post
get 和post的区别有哪些
1.安全性 get 请求的数据会显示在 地址栏(URL路径中)上, post请求的数据,放在http协议的消息体
2.从可以提交数据的大小看.
2.1 http协议本身并没有限制数据大小.
2.2 浏览器在对get 和post请求做限制, get 请求数据 2k+35 ,post没有限制.
3. get请求可以更好的添加到收藏夹.
现在我们实际使用一些http请求,完成一个防盗链的练习.
☞ http请求不是固定,是根据实际情况的,比如REFEER.
Http响应(response)
简单定义: 一个Http响应代表服务器给浏览器回送的数据,同时告诉浏览器应当怎样处理数据.
1.基本结构
状态行
消息头信息
<--空行
实体信息
快速入门
HTTP/1.1 200 OK 【200 ok 表示客户端请求成功】
Server: Microsoft-IIS/5.0 【表示告诉浏览器 服务器的情况 】
Date: Thu, 13 Jul 2000 05:46:53 GMT 【告诉浏览器 请求的页面 的时间 】
Content-Length: 2291 【表示回送的数据有 2291个字节】
Content-Type: text/html 【文档类型】
Cache-control: private 【缓存】
hello
对状态码的说明
举例说明Http响应的实际应用
302状态码的使用
比如我们现在希望访问a.php 页面,让其自动重定向到b.php
基本用法使用
<?php
//header(“Location: 新的页面”);
header(“Location: http://www.sohu.com”);
exit();
?>
细节: 302 状态码也可以让其跳转到外网去
404 码
404 最常见的状态码
404一般说就是该页面不存在
304码使用
304 码主要是告诉浏览器,请求的资源不需要更新
<?php
echo “hello”;
echo “<imgsrc=”Sunset.jpg” width=”100px”>“
?>
上面说明了 304的具体用法
HTTP/1.1 304 Not Modified
Date: Tue, 13 Sep 2011 02:10:38 GMT
Server: Apache/2.2.17 (Win32) PHP/5.3.5
Connection: Keep-Alive
Keep-Alive: timeout=5, max=99
ETag:"12d00000000572c-6f69-3e1d849f35000"
下面是比较详细的一个Http响应
Location: http://www.baidu.org/index.php
Server:apache
Content-Encoding: gzip 【内容编码支持gzip压缩算法】
Content-Length: 80 【返回数据大小】
Content-Language: zh-cn
Content-Type: text/html; charset=GB2312
Last-Modified: Tue, 11 Jul 2000 18:23:51GMT 【表示浏览器请求资源,最新更新时间】
Refresh:1;url=http://www.baidu.com 【告诉浏览器,间隔1秒,重定向到 baidu】
Content-Disposition: attachment;filename=aaa.zip
Transfer-Encoding: chunked
Set-Cookie:SS=Q0=5Lb_nQ; path=/search 【讲Cookie】
Expires: -1
Cache-Control:no-cache
Pragma: no-cache
Connection: close/Keep-Alive
Date: Tue, 11 Jul 2000 18:23:51 GMT
演示如何通过Http响应,控制浏览器间隔一定时间去跳转.
<?php
//header(“Refresh: 3 ; url=http://www.sohu.com”);
header(“Refresh: 3 ;url=http://localhost/http/d.php”);
?>
演示如何通过Http响应控制页面缓存,在默认情况下,浏览器会缓存页面.
<?php
//通过以下三个header语句来禁用缓存(ajax ),用三句是为了匹配不同的浏览器
header("Expires: -1");
header("Cache-Control: no_cache");
header("Pragma: no-cache");
echo"hello!cache";
?>
---------------------
作者:偶-木
来源:CSDN
原文:https://blog.csdn.net/u013372487/article/details/46991623
版权声明:本文为博主原创文章,转载请附上博文链接!
http协议:http请求、http响应、间隔时间跳转页面、禁用浏览器缓存的更多相关文章
- 老李分享:HTTP协议之请求和响应
老李分享:HTTP协议之请求和响应 HTTP请求头详解: GET http://www.foo.com/ HTTP/1.1 GET是请求方式,请求方式有GET/POST http://www.fo ...
- 【渗透课程】第二篇下-HTTP协议的请求与响应深度剖析
[渗透课程]第二篇下-HTTP协议的请求与响应深度剖析 HTTP1.1目前支持以下7种请求方法: 常见的MIME类型如下: 第一个数字有五种可能的取值: 目录 什么是请求方法?什么是请求头? HTTP ...
- 02_Django-路由配置-HTTP协议的请求和响应
02_Django-路由配置-HTTP协议的请求和响应 视频:https://www.bilibili.com/video/BV1vK4y1o7jH 博客:https://blog.csdn.net/ ...
- JS请求服务器,并返回信息,请求过程中不需要跳转页面
js请求服务器,并返回信息,请求过程中不需要跳转页面 这个可以通过jQuery框架轻松实现,jQuery中包含多种ajax的请求方式,详细可以参考下对应 的API. 你上面定义的按钮类型是submit ...
- HTTP协议的请求和响应学习
本篇作为学习servlet的前提,http协议是学习JavaWeb开发的基石,不深入了解http协议,就不能说掌握了JavaWeb开发. HTTP协议有两个版本:HTTP1.0和HTTP1.1,那么有 ...
- 【HTTP】HTTP协议的请求与响应
创建时间:6.14 http协议 的位置 1.HTTP是什么 超文本传输协议(HyperText Transfer Protocol) 2.Http协议的组成 Http协议由Http请求和Http响应 ...
- #WEB安全基础 : HTTP协议 | 0x10 请求和响应报文重点结构及常见头部
你需要认识一些常见的头部以及了解报文的详细结构 请求报文的请求行 GET/HTTP/1.1 响应报文的响应行 HTTP/1.1 200 OK 想必这些大家都知道了 请求 我访问一个页面 Host // ...
- JavaWeb_Day10_学习笔记1_response(3、4、5、6、7、8、9)发送状态码、响应、重定向、定时刷新、禁用浏览器缓存、响应字节数据、快捷重定向方法、完成防盗链
今天学习重点: 1.response和request响应和应答分别学习: 请求响应流程图 response 1 response概述 response是Servlet.service方法 ...
- 禁用浏览器缓存Ajax请求
$.ajax({ url: 'url.php', cache: false, success: function(data){ //..... } }); 仅Get有缓存, Post不会缓存
随机推荐
- hibernate对连接池的支持
连接池, 作用: 管理连接:提升连接的利用效率! 常用的连接池: C3P0连接池 Hibernate 自带的也有一个连接池,且对C3P0连接池也有支持! Hbm 自带连接池: ...
- numpy基本方法总结
NumPy基本方法 一.数组方法 创建数组:arange()创建一维数组:array()创建一维或多维数组,其参数是类似于数组的对象,如列表等 读取数组元素:如a[0],a[0,0] 数组变形:如b= ...
- python之scrapy携带Cookies模拟登陆
知识点 """ scrapy两种模拟登陆: 1.直接携带cookie 2.找到发送post请求的url地址,带上信息,发送请求 应用场景: 1.cookie过期时间很长, ...
- 基于request的爬虫练习
引言 概述 概念:基于网络请求的模块 作用:用来模拟浏览器发请求,从而实现爬虫 通用爬虫 步骤: 指定url 请求发送:get返回的是一个响应对象 获取响应数据: text返回的是字符串形式的响应数据 ...
- 配置lumen的log为daily模式
1.首先添加服务提供者类LogServiceProvider <?php namespace App\Providers; use Illuminate\Support\ServiceProvi ...
- SLC cache功能
由于TLC需要多次编程,且未全部编程时wordLine处于不稳定状态,所以一般都会划出一部分区域作为SLC cache使用 SLC cache主要功能是,SSD接收到写命令后,先将数据写入SLC ca ...
- 【HTML】常用的标签学习
HTML(HyperText Markup Language )又称超文本标记语言,与一般文本文件不同的是它是由各种标签或标记组成 <标签名></标签名> .所以html的学习 ...
- 安装与编译Dlib(以Ubuntu16.04+Python3.6+pip为例)
安装与编译Dlib(以Ubuntu16.04+Python3.6+pip为例) Step1:下载Ubuntu (or Linux)系统支持库=>Install OS libraries -dev ...
- 二分查找算法C++实现
/************************************************************************* > File Name: binary_se ...
- Linux远程开发
Linux远程开发 通常,当我们开发Linux程序时有两种方案: 在Linux上直接编写程序并进行运行测试和调试 在Windows或Mac OS X上借助工具进行远程开发 虽然我自己是在Linux环境 ...