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 { ...
随机推荐
- ThinkPad X220 完美黑苹果 Hackintosh OS X 10.11 El Capitan
原文链接:https://www.gaojinan.com/thinkpad-x220-hackintosh-osx-10-11-el-capitan-perfect.html //Update 20 ...
- 基于python3在nose测试框架的基础上添加测试数据驱动工具
[本文出自天外归云的博客园] Python3下一些nose插件经过2to3的转换后失效了 Python的nose测试框架是通过python2编写的,通过pip3install的方式安装的nose和相关 ...
- cf 366D D. Dima and Trap Graph (计算所有线段共同覆盖的某段区间)
http://codeforces.com/problemset/problem/366/D 题意:给出n个点,m条边,a,b,ll,rr分别代表点a,点b相连,点a和点b的区间范围(ll,rr),然 ...
- fastjson使用TypeReference示例
package junit.test; import java.util.ArrayList; import java.util.HashMap; import java.util.List; imp ...
- 基于jQuery实现汉字转换成拼音代码
基于jQuery实现汉字转换成拼音代码.这是一款基于jQuery.Hz2Py.js插件实现的汉字转拼音特效.效果图如下: 在线预览 源码下载 实现的代码. html代码: <br /> ...
- Functions: C++'s Programming Modules
在这一章中要学习以下内容: 函数基础 函数原型 通过value向函数传递参数 设计处理数组的函数 使用const指针参数 设计函数处理文本字符串 设计函数处理结构体 设计函数处理string类型的对象 ...
- Redis初步认识
官网:redis.io Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的 ...
- ASP.net中aspx与cs函数的互调
转载自:http://www.2cto.com/kf/201209/152898.html aspx前台的script函数,调用aspx.cs中后台函数: aspx: <script type= ...
- c# 自动计算字符串的宽度
测试代码: string str = "字符串"; var width = TextRenderer.MeasureText(str, this.Font); var width2 ...
- Django添加防跨站请求伪造中间件
第一步: 在全局设置中打开此中间件: MIDDLEWARE_CLASSES = [ ... 'django.middleware.csrf.CsrfViewMiddleware', ... ] ...