文档章节

HTTP协议

bieguohuo
 bieguohuo
发布于 2017/04/10 14:38
字数 1079
阅读 54
收藏 1
点赞 0
评论 0

一、HTTP请求由三部分组成,分别是:请求行、消息报头、请求正文

       格式如下:Method ,Request-URI ,HTTP-Version, CRLF

       Method表示请求方法;Request-URI是一个统一资源标识符;HTTP-Version表示请求的HTTP协议版本;CRLF表示回车和换行(除了作为结尾的CRLF外,不允许出现单独的CR或LF字符)
       请求方法(所有方法全为大写)有多种,各个方法的解释如下:
            GET     请求获取Request-URI所标识的资源
            POST    在Request-URI所标识的资源后附加新的数据
            HEAD    获得报文首部,只是不返回报文主体,一般用于验证URI是否有效
            PUT     传输文件,报文主体中包含文件内容,保存到对应URI位置
            DELETE  删除文件,与PUT方法相反,删除对应URI位置的文件
            TRACE   请求服务器回送收到的请求信息,主要用于测试或诊断
            CONNECT 保留将来使用
            OPTIONS 查询相应URI支持的HTTP方法。

2、GET方法与POST方法的区别
区别一:
    get重点在从服务器上获取资源,post重点在向服务器发送数据;
区别二:
    get传输数据是通过URL请求,以field(字段)= value的形式,置于URL后,并用"?"连接,多个请求数据间用"&"连接,如http://127.0.0.1/Test/login.action?name=admin&password=admin,这个过程用户是可见的;
    post传输数据通过Http的post机制,将字段与对应值封存在请求实体中发送给服务器,这个过程对用户是不可见的;
区别三:
    Get传输的数据量小,因为受URL长度限制,但效率较高;
    Post可以传输大量数据,所以上传文件时只能用Post方式;
区别四:
    get是不安全的,因为URL是可见的,可能会泄露私密信息,如密码等;
    post较get安全性较高;

3、HTTP请求报文与响应报文格式

请求报文包含三部分:
    a、请求行:包含请求方法、URI、HTTP版本信息
    b、请求首部字段
    c、请求内容实体
响应报文包含三部分:
    a、状态行:包含HTTP版本、状态码、状态码的原因短语
    b、响应首部字段
    c、响应内容实体

区别五:
    get方式只能支持ASCII字符,向服务器传的中文字符可能会乱码。
    post支持标准字符集,可以正确传递中文字符

4、HTTP的缺点与HTTPS
    a、通信使用明文不加密,内容可能被窃听
    b、不验证通信方身份,可能遭到伪装
    c、无法验证报文完整性,可能被篡改

HTTPS就是HTTP加上加密处理(一般是SSL安全通信线路)+认证+完整性保护

5、HTTP优化

    利用负载均衡优化和加速HTTP应用

    利用HTTP Cache来优化网站

6、cookie 和session 的区别:

    1、cookie数据存放在客户的浏览器上,session数据放在服务器上。

    2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
           考虑到安全应当使用session。

    3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
   考虑到减轻服务器性能方面,应当使用COOKIE。

    4、单个cookie保存的数据不能超过4K,IE6及以下浏览器版本限制一个站点最多保存20个cookie,IE7及以上版本可以保存50个cookie.

7、经缓存的内容的控制

      Cache-control: public 表示缓存的版本可以被代理服务器或者其他中间服务器识别。

     Cache-control: private 意味着这个文件对不同的用户是不同的。只有用户自己的浏览器能够进行缓存,公共的代理服务器不允许缓存。

     Cache-control: no-cache 意味着文件的内容不应当被缓存。这在搜索或者翻页结果中非常有用,因为同样的URL,对应的内容会发生变化

  二、HTTP响应也是由三个部分组成,分别是:状态行、消息报头、响应正文

           状态行格式如下:HTTP-Version, Status-Code ,Reason-Phrase ,CRLF

 

© 著作权归作者所有

共有 人打赏支持
bieguohuo
粉丝 3
博文 22
码字总数 7166
作品 0
丰台
高级程序员

暂无文章

机器学习管理平台 MLFlow

最近工作很忙,博客一直都没有更新。抽时间给大家介绍一下Databrick开源的机器学习管理平台-MLFlow。 谈起Databrick,相信即使是不熟悉机器学习和大数据的工程湿们也都有所了解,它由Spark的...

naughty
40分钟前
0
0
idea tomcat 远程调试

tomcat 配置 编辑文件${tomcat_home}/bin/catalina.sh,在文件开头添加如下代码。    CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7829" Idea端配......

qwfys
今天
1
0
遍历目录下的文件每250M打包一个文件

#!/usr/bin/env python # -*- utf-8 -*- # @Time : 2018/7/20 0020 下午 10:16 # @Author : 陈元 # @Email : abcmeabc@163.com # @file : tarFile.py import os import tarfile import thr......

寻爱的小草
今天
1
0
expect同步文件&expect指定host和要同步的文件&构建文件分发系统&批量远程执行命令

20.31 expect脚本同步文件 expect通过与rsync结合,可以在一台机器上把文件自动同步到多台机器上 编写脚本 [root@linux-5 ~]# cd /usr/local/sbin[root@linux-5 sbin]# vim 4.expect#!/...

影夜Linux
今天
1
0
SpringBoot | 第九章:Mybatis-plus的集成和使用

前言 本章节开始介绍数据访问方面的相关知识点。对于后端开发者而言,和数据库打交道是每天都在进行的,所以一个好用的ORM框架是很有必要的。目前,绝大部分公司都选择MyBatis框架作为底层数...

oKong
今天
13
0
win10 上安装解压版mysql

1.效果 2. 下载MySQL 压缩版 下载地址: https://downloads.mysql.com/archives/community/ 3. 配置 3.1 将下载的文件解压到合适的位置 我最终将myql文件 放在:D:\develop\mysql 最终放的位...

Lucky_Me
今天
2
0
linux服务器修改mtu值优化cpu

一、jumbo frames 相关 1、什么是jumbo frames Jumbo frames 是指比标准Ethernet Frames长的frame,即比1518/1522 bit大的frames,Jumbo frame的大小是每个设备厂商规定的,不属于IEEE标准;...

问题终结者
今天
2
0
expect脚本同步文件expect脚本指定host和要同步的文件 构建文件分发系统批量远程执行命令

expect脚本同步文件 在一台机器上把文件同步到多台机器上 自动同步文件 vim 4.expect [root@yong-01 sbin]# vim 4.expect#!/usr/bin/expectset passwd "20655739"spawn rsync -av ro...

lyy549745
今天
1
0
36.rsync下 日志 screen

10.32/10.33 rsync通过服务同步 10.34 linux系统日志 10.35 screen工具 10.32/10.33 rsync通过服务同步: rsync还可以通过服务的方式同步。那需要开启一个服务,他的架构是cs架构,客户端服务...

王鑫linux
今天
1
0
matplotlib 保存图片时的参数

简单绘图 import matplotlib.pyplot as pltplt.plot(range(10)) 保存为csv格式,放大后依然很清晰 plt.savefig('t1.svg') 普通保存放大后会有点模糊文件大小20多k plt.savefig('t5.p...

阿豪boy
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部