TokeyRoad

Never underestimate your power to change yourself!


  • 首页

  • 标签

  • 分类

  • 归档

HTTP请求方法

发表于 2019-03-30 | 分类于 网络协议
字数统计: 261 | 阅读时长 ≈ 1

HTTP请求方法

​ 常用的HTTP请求方式为GET/POST。

​ 根据HTTP标准,HTTP有以下多种请求方式:

​ HTTP1.0定义了三种请求方法:GET、POST和HEAD方法。

​ HTTP1.1新增了五种请求方法:OPTIONS、PUT、DELETE、TRACE和CONNECT方法。

  1. GET:请求指定的页面信息,并返回实体主体。
  2. HEAD:类似于GET请求,只不过返回的响应中没有具体的内容,只是用于获取报头。
  3. POST:向指定资源提交数据进行处理请求,数据被包含在请求体中。POST请求可能会导致新的资源的生成或者已有资源的修改。(多用于表单提交)
  4. PUT:从客户端向服务器传送的数据取代指定的文档的内容。
  5. DELETE:请求服务器删除指定的页面。
  6. CONNECT:预留给能够将连接改为管道方式的代理服务器。
  7. OPTIONS:允许客户端查看服务器的性能。
  8. TRACE:回显服务器收到的请求,主要用于测试或诊断。

HTTP协议(1)

发表于 2019-03-28 | 分类于 网络协议
字数统计: 595 | 阅读时长 ≈ 2

HTTP协议(1)

简介

​ HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,从万维网(World Wide Web)传输超文本到本地浏览器的协议。

工作原理

​ HTTP协议是工作在C/S架构上的,浏览器作为HTTP客户端通过URL向HTTP服务端(WEB服务器)发送数据请求。

​ 常用的WEB服务器:Apache,Nginx,IIS服务器等。

​ 服务器接收到请求之后,向客户端响应信息即回复。

​ HTTP默认端口号80,可自己在WEB服务器上修改。

HTTP注意事项
  1. HTTP是无连接的:即每次只能处理一个请求,每次服务端收到请求之后就立马处理并回复,收到客户端的应答之后就断开连接,这样极大的减少了传输时间。

阅读全文 »

压缩与解压

发表于 2019-03-23 | 分类于 Liunx 指令学习
字数统计: 397 | 阅读时长 ≈ 1

1.基础压缩指令
gzip file 压缩对应文件,源文件移除,如果是多个文件压缩,则被分别压缩,不会打包。(压缩后文件名file.gz)
gunzip file.gz 解压file.gz,压缩包移除。
bzip2 file (-k) 同gzip,但是压缩后的文件名file.bz2, k表示源文件保留
bunzip2 file.bz2 同gunzip
两者都不能压缩名录
2.高级压缩指令
(1)tar
参数:
c – 创建 – 压缩(源文件保留)
x – 释放 – 解压缩
v – 显示提示信息 – 压缩解压缩 –可忽略
f – 指定压缩文件的名字
z – 使用gzip的方式压缩文件 –.gz(后缀)
j – 使用bzip2的方式压缩文件 – .bz2
压缩:
tar zcvf XXX.tar.gz 需要压缩的文件
tar jcvf XXX.tar.bz2 需要压缩的文件
解压缩:
tar jxvf XXX.tar.bz2 (-C 解压目录,默认当前)

阅读全文 »

Web服务器搭建

发表于 2019-03-19 | 分类于 Web
字数统计: 27 | 阅读时长 ≈ 1

Web服务器搭建

web服务器 初始安装配置 lnmp (PHP 7 mysql 5.7)
https://www.jianshu.com/p/ed2d1820bd3e

内存分配的实例分析

发表于 2019-03-19 | 分类于 C++
字数统计: 395 | 阅读时长 ≈ 1

//实例1

1
2
3
4
5
6
7
8
9
10
11
12
13
int a = 0; //全局初始化区  
char *p1; //全局未初始化区(C++中则初始化为NULL)
int main() {
int b; //b分配在栈上,整型
char s[] = "abc"; //s分配在栈上,char *类型;"abc\0"分配在栈上,运行时赋值,函数结束销毁
char *p2; //p2分配在栈上,未初始化
char *p3 = "123456"; //p3指向"123456"分配在字符串常量存储区的地址,编译时确定 p3存储在栈上
static int c = 0; //c在全局(静态)初始化区,可以多次跨函数调用而保持原值
p1 = (char *)malloc(10); //p1在全局未初始化区,指向分配得来得10字节的堆区地址
p2 = (char *)malloc(20); //p2指向分配得来得20字节的堆区地址
strcpy(p1, "123456"); //"123456"放在字符串常量存储区,编译器可能会将它与p3所指向的"123456"优化成一块
return 0;
}

//实例2(找bug)

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
int main(){
char a[] = "hello";
//a分配在栈上,char* 类型,“hellp\0”分配在栈上,运行时赋值,程序结束时销毁。
a[0] = 'X';
cout << a << endl;
char *p = "world";
//p分配在栈上,char* 类型,“world\0”存于常量存储区(常量字符串),编译时p存入栈里。
p[0] = 'X';
cout << p << endl;
return 0;
}

其中字符数组a的容量是6,内容是“hello\0”,a的内容是可变的,而p分配在栈上,指向的地址在常量存储区,不可修改,因此修改p的时候会出现非法内存访问。

1…8910
Tokey

Tokey

48 日志
9 分类
41 标签
  • C++8
  • Const1
  • Final1
  • HTTP2
  • Redis8
  • SDS1
  • STL4
  • TCP1
  • args1
  • atomic1
  • condition_variable1
  • construct1
  • foreach1
  • git2
  • go4
  • hexo1
  • json1
  • libcurl1
  • mutex1
  • operator1
  • override1
  • priority_queue1
  • shared_ptr1
  • stl1
  • unique_ptr1
  • vector1
  • 关键字2
  • 内存分配1
  • 列表对象1
  • 压缩列表2
  • 堆1
  • 字符串对象1
  • 指针和引用1
  • 敏捷开发1
  • 整数集合1
  • 栈1
  • 环境配置1
  • 缓存1
  • 设计模式1
  • 跳跃表1
  • 链表1
GitHub Google
Links
  • Hacker
本站已运行
© 2021 Tokey
博客全站共45.4k字
苏ICP备-20024031号
访问人数 总访问量 次
0%