1.Http协议概述

关于Http协议的发展,各种资料有很多,在此不再赘述,不明白的小伙伴儿可以去搜一下,Http报文分为请求报文和相应报文,由于Http是面向文本的,因此在报文中的每一个字段都是一些ASCII码,下图是摘自谢希仁第五版《计算机网络》的图片,本文按照这两种分类对报文头的字段进行一下汇总说明。

资料都是从给位大神那里获取到的,我只是负责汇总而已~

2.Http请求报文

如上图(a)中为请求报文格式,分为请求行、首部行和实体主体(本文对实体主体不做说明,下同);

2.1 请求行

请求行包括方法、URL和版本,下面分别其进行说明。

方法:HTTP协议的请求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT,最常用的方法是GET和POST;

URL:请求的地址

版本:协议名称及版本号,例如:HTTP/1.1

2.2 首部行

Accept:客户端期待接收的文件类型

Accept-Encoding:客户端可以接收的编码格式。它是为了压缩并提高文件传递速度,客户端在接收到Web相应之后衔接吗,然后检查文件格式

Accept-Languages:客户端期望接收到的语言种类

Cache-Control:

Connection:用来通知服务器是否可以保持固定的HTTP连接,包括Upgrade,Keep-Alive和close。HTTP/1.1使用Keep-Alive为默认值,保证了浏览器需要多个文件时,不需要每次都建立连接。使用close之后,服务器会断开与客户端的连接。

Host:请求的目标主机

Cookie:这个字段在开发的时候比较常用,最初在实现购物车效果的时候,一般都采用Cookie。关于Cookie的工作原理,文章最后会做详细解释。

User-Agent:User-Agent是Http协议中的一部分,属于头域的组成部分,User Agent也简称UA。用较为普通的一点来说,是一种向访问网站提供你所使用的浏览器类型、操作系统及版本、CPU 类型、浏览器渲染引擎、浏览器语言、浏览器插件等信息的标识。具体内容请参考:http://blog.csdn.net/rj042/article/details/6991441

Upgrade-Insecure-Requests:与安全相关的设置

If-Modified-Since:

3.Http响应报文

4.Cookie工作原理

Cookie是这样工作的:

当用户浏览某个使用Cookie的网站时,该网站的服务器就为用户产生一个唯一的识别码,并以此作为索引在服务器的后端数据库中产生一个项目。并在给用户的HTTP相应报文中添加一个叫做Set-Cookie的首部行,这里的“首部字段名称”就是“Set-Cookie”,对应的字段值就是服务器赋予该用户的“识别码”。其格式如下:

Set-cookie:abcdefg(只作为示例,实际肯定比这个复杂)

当用户收到这个响应式,其浏览器就在他管理的特定Cookie文件中添加一行,其中包括这个服务器的主机名(即host字段)和Set-cookie对应的这个网站的识别码,并放到HTTP请求报文的Cookie首部行中,如下:

Cookie:abcdefg

以上就是整个Cookie的流程,网站可以根据Cookie值跟踪用户在该网站的活动,假设该网站为一个购物网站,那么服务器就可以为该用户通过Cookie维持一张购物列表,使用户在结束这次购物时可以一起付费。

Http协议中常用字段总结(不定时完善中)的更多相关文章

  1. day07 ORM中常用字段和参数

    day07 ORM中常用字段和参数 今日内容 常用字段 关联字段 测试环境准备 查询关键字 查看ORM内部SQL语句 神奇的双下划线查询 多表查询前提准备 常用字段 字段类型 AutoField in ...

  2. ORM中聚合函数、分组查询、Django开启事务、ORM中常用字段及参数、数据库查询优化

    聚合函数 名称 作用 Max() 最大值 Min() 最小值 Sum() 求和 Count() 计数 Avg() 平均值 关键字: aggregate 聚合查询通常都是配合分组一起使用的 关于数据库的 ...

  3. 如何使用MySQL一个表中的字段更新另一个表中字段

    [本文出自:https://www.jb51.net/article/150323.htm] 这篇文章主要介绍了如何使用MySQL一个表中的字段更新另一个表中字段,需要的朋友可以参考下 1,修改1列 ...

  4. 前端必备HTTP技能之HTTP请求头响应头中常用字段详解(转)

    作为一名前端开发人员,肯定少不了要和网络打交道,因为要从服务器端拉取数据,从服务端获取数据最常用的方式还是通过HTTP请求.给服务器发请求的时候有请求头,接受服务器响应的时候有响应头,客户端和服务器端 ...

  5. Django ORM中常用字段和参数

    一些说明: 表myapp_person的名称是自动生成的,如果你要自定义表名,需要在model的Meta类中指定 db_table 参数,强烈建议使用小写表名,特别是使用MySQL作为后端数据库时. ...

  6. mysql中常用函数简介(不定时更新)

    常用函数version() 显示当前数据库版本database() 返回当前数据库名称user() 返回当前登录用户名inet_aton(IP) 返回IP地址的数值形式,为IP地址的数学计算做准备in ...

  7. Django中常用字段

    一.Django框架的常用字段 Django ORM 常用字段和参数 常用字段 常用字段 AutoField int自增列,必须填入参数 primary_key=True.当model中如果没有自增列 ...

  8. 因在缓存对象中增加字段,而导致Redis中取出缓存转化成Java对象时出现反序列化失败的问题

    背景描述 因为业务需求的需要,我们需要在原来项目中的一个DTO类中新增两个字段(我们项目使用的是dubbo架构,这个DTO在A项目/服务的domain包中,会被其他的项目如B.C.D引用到).但是这个 ...

  9. gradle文件中自定义字段值在java代码中使用

    1. 在build.gradle 中  buildConfigField  的参数有3个 第一个类型 第二个为名称 第三个是值 如果是字符串类型 请不要忘记 双引号! buildTypes {     ...

随机推荐

  1. RTX——第19章 SVC 中断方式调用用户函数(后期补历程)

    以下内容转载自安富莱电子: http://forum.armfly.com/forum.php 本章节为大家讲解如何采用 SVC 中断方式调用用户函数. 当用户将 RTX 任务设置为工作在非特权级模式 ...

  2. keepalived+nginx双机热备+负载均衡

    Reference: http://blog.csdn.net/e421083458/article/details/30092795 keepalived+nginx双机热备+负载均衡 最近因业务扩 ...

  3. mysql 锁表操作流程

  4. python 字符串格式化转换类型

  5. java---简单的ATM存取系统,

    新手练手必备~ 密码账户为: 先创建账户类: package cn.Atm; /** * @author 偶my耶 */ import java.io.*; import com.project.pr ...

  6. PowerDesigner导出表到HTML或word(实测有效)

    推荐生成HTML,因为看起来更加简洁 一.模版修改 在导出表时,powerdesigner默认为我们提供了很多的模版,在工具栏中选择[Report--->Report Template]即可看到 ...

  7. PHP程序员如何理解IoC/DI(转)

    php - Dependency Injection依赖注入 和 自动加载 各自的优缺点 ioc/di和自动加载时两回事. ioc/di 让代码由创建对象改为注入对象,是一种编程思想,而自动加载,只是 ...

  8. mongo批量更新、导入导出脚本

    批量更新,一定要加上最后的条件: db.getCollection('cuishou_user').update( {,,,,,]}}, //query {$set:{)}},// update {m ...

  9. bower failed: UNABLE_TO_VERIFY_LEAF_SIGNATURE

    .bowerrc配置 { "strict-ssl": false }

  10. layer.open如何关闭自身弹出窗口

    1. 弹出窗口中本身可以添加按钮事件如下: layer.open({ title: '打印' ,type: 2 ,content: [ctx + '/saleOrder/eorderEdit?orde ...