Http协议中常用字段总结(不定时完善中)
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协议中常用字段总结(不定时完善中)的更多相关文章
- day07 ORM中常用字段和参数
day07 ORM中常用字段和参数 今日内容 常用字段 关联字段 测试环境准备 查询关键字 查看ORM内部SQL语句 神奇的双下划线查询 多表查询前提准备 常用字段 字段类型 AutoField in ...
- ORM中聚合函数、分组查询、Django开启事务、ORM中常用字段及参数、数据库查询优化
聚合函数 名称 作用 Max() 最大值 Min() 最小值 Sum() 求和 Count() 计数 Avg() 平均值 关键字: aggregate 聚合查询通常都是配合分组一起使用的 关于数据库的 ...
- 如何使用MySQL一个表中的字段更新另一个表中字段
[本文出自:https://www.jb51.net/article/150323.htm] 这篇文章主要介绍了如何使用MySQL一个表中的字段更新另一个表中字段,需要的朋友可以参考下 1,修改1列 ...
- 前端必备HTTP技能之HTTP请求头响应头中常用字段详解(转)
作为一名前端开发人员,肯定少不了要和网络打交道,因为要从服务器端拉取数据,从服务端获取数据最常用的方式还是通过HTTP请求.给服务器发请求的时候有请求头,接受服务器响应的时候有响应头,客户端和服务器端 ...
- Django ORM中常用字段和参数
一些说明: 表myapp_person的名称是自动生成的,如果你要自定义表名,需要在model的Meta类中指定 db_table 参数,强烈建议使用小写表名,特别是使用MySQL作为后端数据库时. ...
- mysql中常用函数简介(不定时更新)
常用函数version() 显示当前数据库版本database() 返回当前数据库名称user() 返回当前登录用户名inet_aton(IP) 返回IP地址的数值形式,为IP地址的数学计算做准备in ...
- Django中常用字段
一.Django框架的常用字段 Django ORM 常用字段和参数 常用字段 常用字段 AutoField int自增列,必须填入参数 primary_key=True.当model中如果没有自增列 ...
- 因在缓存对象中增加字段,而导致Redis中取出缓存转化成Java对象时出现反序列化失败的问题
背景描述 因为业务需求的需要,我们需要在原来项目中的一个DTO类中新增两个字段(我们项目使用的是dubbo架构,这个DTO在A项目/服务的domain包中,会被其他的项目如B.C.D引用到).但是这个 ...
- gradle文件中自定义字段值在java代码中使用
1. 在build.gradle 中 buildConfigField 的参数有3个 第一个类型 第二个为名称 第三个是值 如果是字符串类型 请不要忘记 双引号! buildTypes { ...
随机推荐
- 10个非常炫酷的jQuery相册动画赏析
我们经常可以在网页上看到形式各异的jQuery相册插件,由于现在浏览器对HTML5和CSS3的兼容越来越好了,所以很多jQuery相册插件都运用了CSS3的相关特性,形成了许多炫酷的动画特效.本文收集 ...
- 9个绚丽多彩的HTML5进度条动画赏析
进度条在网页应用中越来越广泛了,特别是现在的页面异步局部刷新时代,进度条可以让用户更好的等待操作结果.本文要分享9款绚丽多彩的HTML5进度条动画,有很多还是挺实用的,效果也非常不错. 1.CSS3发 ...
- LeetCode: Palindrome Partitioning II 解题报告
Palindrome Partitioning II Given a string s, partition s such that every substring of the partition ...
- pandas的连接函数concat()函数
pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False, keys=None, levels=No ...
- Python的可视化包 – Matplotlib 2D图表(点图和线图,.柱状或饼状类型的图),3D图表(曲面图,散点图和柱状图)
Python的可视化包 – Matplotlib Matplotlib是Python中最常用的可视化工具之一,可以非常方便地创建海量类型地2D图表和一些基本的3D图表.Matplotlib最早是为了可 ...
- [转]Ext.grid常用属性和方法
原文地址:http://blog.csdn.net/fm19901229/article/details/8113969 1.Ext.grid.GridPanel 主要配置项: store:表格的 ...
- 【Unity Shader】三、漫反射Diffuse Shader例子
学习目标: 漫反射Diffuse Shader,逐顶点计算和逐像素计算. 半兰伯特(HalfLambert)光照模型. 结合材质自身的色彩(Material Color)及环境光(Ambient). ...
- select 操作选中添加、删除操作Javascript
//添加选中项 function addItem() { var myMember = document.getElementById("myMember"); var other ...
- [译]Godot系列教程六 - 简单的二维游戏
Pong Godot自带的Demo中有大量更复杂的示例,但这款叫"Pong"的游戏可以对2D游戏的基本特性做一个介绍. 静态资源 本文所用到的一些资源文件:http://files ...
- Redis提供的持久化机制(二)
1.前言 Redis是一种高级key-value数据库.它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富.有字符串,链表,集 合和有序集合.支持在服务器端计算集合的并,交和补集 ...