java开发系列-Http协议
概述
HTTP(HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。这种协议用来规定通信数据的格式。

HTTP请求
浏览器往服务器发送数据称之为请求。HTTP协议中规定请求组成部分:请求行、请求头、请求体。

请求行:请求信息的第一行
请求头:请求信息的第二行到空行结束
请求体:空行一下的内容 只有POST请求才有请求体
通过Google浏览器查看一个GET请求的请求信息

请求行中说明了请求的方式,比如是GET还是POST请求。还有访问的资源、协议/版本。
GET与POST请求
GET请求会把参数放在url后面而POST请求会把参数放在请求体中,并且GET参数有大小限制,POST请求没有限制。GET请求没有请求体,而POST有请求体用于存放参数。
HTTP协议版本
HTTP 1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求。
HTTP 1.1的持续连接,也需要增加新的请求头来帮助实现,例如,Connection请求头的值为Keep-Alive时,客户端通知服务器返回本次请求结果后保持连接;Connection请求头的值为close时,客户端通知服务器返回本次请求结果后关闭连接。HTTP 1.1还提供了与身份认证、状态管理和Cache缓存等机制相关的请求头和响应头
常见的HTTP请求头
Accept: text/html, image/* --支持数据类型 格式 大类型/小类型 ,mime类型
Accept-Charset: ISO-8859-1 --字符集
Accpet-Encoding: gzip --支持压缩
Accept:-Language: zh-cn --语言环境
Host: localhost:8080 --访问主机
If-Modified-Since: Tue, 11 Jul 2000 18:27:52 GMT --缓存文件最后修改的时间
Referer: http://localhost:8080/index.html -- 来自哪个页面 防盗链
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36
Cookie:
Connection: close/Keep-Alive --连接状态
Date: Tue, 11 Jul 2000 18:27:52 GMT --时间
HTTP响应
服务器往浏览器写数据称之为响应。HTTP协议中规定响应组成部分:响应行、响应头、响应体。

通过过Google浏览器查看一个GET请求的请求行

响应行包含协议版本 状态码
常见的状态码

常见的HTTP响应头
Location: http://www.coderhong.com --跳转方向 与302一起使用
Server: apache tomcate -- 服务器型号
Content-Encoding: gzip -- 数据压缩
Content-Length: 80 --数据长度
Content-Language: zh-cn --语言环境
Content-Type: text/html; charset=GB2312 --数据类型
Last-Moddified:Tue,11 Jul 2000 18:23:51 GMT --最后修改的时间
Refresh:1; url=http://www.coderhong.com --定时刷新
Content-Disposition: attachment; filename=aaa.zip -- 下载
Set-Cookie: SS=Q0=5Lb_nQ; path=/search
Expires: -1 -- 缓存
Cache-Control: no-cache --缓存
Pragma: no-cache -- 缓存
Connection:close/Keep-Alive --连接
java开发系列-Http协议的更多相关文章
- 【java开发系列】—— JDK安装
前言 作为一个java开发者,安装JDK是不可避免的,但是配置路径却总是记不住,百度也有很多参考例子.这里仅仅当做以后参考的笔记记录. 说到JDK,就不得不提JRE.他们到底是什么呢? 通常我们进行j ...
- Java开发系列-文件上传
概述 Java开发中文件上传的方式有很多,常见的有servlet3.0.common-fileUpload.框架.不管哪种方式,对于文件上传的本质是不变的. 文件上传的准备 文件上传需要客户端跟服务都 ...
- 【java开发系列】—— spring简单入门示例
1 JDK安装 2 Struts2简单入门示例 前言 作为入门级的记录帖,没有过多的技术含量,简单的搭建配置框架而已.这次讲到spring,这个应该是SSH中的重量级框架,它主要包含两个内容:控制反转 ...
- 【java开发系列】—— struts2简单入门示例
前言 最近正好有时间总结一下,过去的知识历程,虽说东西都是入门级的,高手肯定是不屑一顾了,但是对于初次涉猎的小白们,还是可以提供点参考的. struts2其实就是为我们封装了servlet,简化了js ...
- 【java开发系列】—— 自定义注解
之前在开发中,就总纳闷,为什么继承接口时,会出现@Override注解,有时候还会提示写注解@SuppressWarnings? 原来这是java特有的特性,注解! 那么什么是注解呢? 注解就是某种注 ...
- 【java开发系列】—— Tomcat编译报错
由于之前Eclipse里面有一个可移植性的web工程,但是在我很久没用后,再次登录这个IDE的时候就发现了问题. 首先,我的电脑里面有两个版本的JDK,1.6和1.7.两个版本的Tomcat6和7以及 ...
- Java开发系列-电子邮箱
概述 电子邮箱就是在邮箱服务器上开启的一块空间.邮箱服务器就是一个安装在计算机的服务软件,提供有邮件服务. 邮箱的发送流程 现在tom要发送一份邮件给jerry,首先tom将邮件通过客户端连接自己设置 ...
- Java开发系列-JSP
概述 JSP是java 服务器页面,它运行在服务器端,本质上就是一个serlvet,产生的java文件和class保留在tomcat的word目录下. JSP主要作用是将内容的生成与页面相分离. JS ...
- Java开发系列-JDBC
概述 JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和 ...
随机推荐
- 一个切图仔的 CSS 笔记
1,flexbox~注意,设为 Flex 布局以后,子元素的float.clear和vertical-align属性将失效. 在ios8上要加上前缀 display: -webkit-box; dis ...
- 关于FR4板一些重复的数据
介电常数:4.2-4.7 信号传输速度:表层 140~170 ps/inch, 内层 180 ps/inch
- yii2.0 数据库查询操作
User::find()->all(); 此方法返回所有数据: User::findOne($id); 此方法返回 主键 id=1 的一条数据(举个例子): User:: ...
- Windows 虚拟机 VM
VMware是全球台式电脑及资料中心虚拟化解决方案的领导厂商.VMWare Workstation是该公司出品的“虚拟 PC”软件(即:大家常说的“虚拟机”),通过它可在一台电脑上同时运行更多的Mic ...
- 携程的 Dubbo 之路
本篇文章整理自董艺荃在 Dubbo 社区开发者日上海站的演讲. 缘起 携程当初为什么要引入 Dubbo 呢?实际上从 2013 年底起,携程内主要使用的就是基于 HTTP 协议的 SOA 微服务框架. ...
- java实现单链表增删改查
package 数据结构算法.链表; /* *定义节点 * 链表由节点构成 */ public class Node<E> { private E e; //数据data private ...
- 模拟求root——cf1067B
注意最后一轮要单独求一下 且最后只能有一个root #include <bits/stdc++.h> using namespace std; #define MOD 1000000007 ...
- python和go对比字符串的链式处理
一.什么是链式处理 对数据的操作进行多步骤的处理称为链式处理,链式处理器是一种常见的编程设计,链式处理的开发思想将数据和操作拆分,解耦,让开发者可以根据自己的技术优势和需求,进行系统开发,同时将自己的 ...
- iserver中的服务数据迁移
今天需要将iserver测试服务器上的空间数据服务(数据源是Oracle Plus)迁移到客户的正式服务器,原想需要很大的工作量,其实是这样简单: 一.保证客户的iserver环境都已安装正确.对于o ...
- Java-Maven-pom.xml-porject-parent:parent
ylbtech-Java-Maven-pom.xml-porject-parent:parent 1.返回顶部 1.Inherit defaults from Spring Boot <!-- ...