一、定义
http(Hyper Text Transfer Protocol):超文本传输协议
二、作用
数据传输
三、概念
HTTP消息:
1.客户端发向服务器的请求消息
2.服务器回给客户端的响应消息
客户端和服务器之间的信息交换过程
1.客户端和服务建立连接
2.客户端向服务器发送请求
3.服务器对客户端进行响应
4.断开连接
http协议的特点:
1.HTTP协议是一个无状态的协议
2.HTTP1.1支持连续连接,一次连接可以发送多个请求
 
四、消息的基本格式
1.请求消息的基本格式
一个请求行
请求方式 资源路径 HTTP版本号
多个请求头
一个空行
请求实体
 
2.响应消息的基本格式
一个状态行
HTTP版本号 http状态码 http状态描述
若干应答头
一个空行
响应实体
 
servlet:
一、什么是servlet?
servlet = server applet
 
二、servlet本质
本质上是java代码,和以前写的java代码有些许的不同:
1.实现了特殊的接口、或继承了特殊的java类
2.servlet不能由程序员去执行,由支持servlet的web服务器运行
3.一个Servlet负责对应的一个或一组URL访问请求,并返回相应的响应内容。
 
三、servlet的运行流程
1.浏览器在地址栏中指定url,发起一个请求
2.服务器根据url的内容,进行解析,找到对应的servlet
3.serlvet执行代码,并返回数据给服务器
4.服务器将数据返回给浏览器
5.浏览器解析数据,展示数据
 
 
 
 
HTTP补充:
一个基本的HTTP请求包括:
一个请求行、若干请求头(消息头)、实体内容
• 请求行格式:
请求方式 资源路径 HTTP版本号
• 几种的请求方式:
– GET 请求获取由Request-URI所标识的资源
– POST 在Request-URI所标识的资源后附加新的数据
– HEAD 请求获取由Request-URI所标识的资源的响应消息报头
– DELETE 请求服务器删除由Request-URI所标识的资源
– TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断
– PUT 请求服务器存储一个资源,并用Request-URI作为其标识
 
通用消息头---既可以用于请求消息、又可用于响应 消息
  • Connection:用于指定处理完本次请求/响应后,是否还要 继续保持连接。
  • Date:产生当前消息的时间。
  • Pragma:no-cache.
  • Cache-Control:指示浏览器或服务器缓存的具体策略
  • Content-Length:表示(请求/响应)正文的长度
 
请求头
  • Accept:浏览器可接受的MIME类型。
  • Accept-Charset:浏览器可接受的字符集。
  • Accept-Encoding:浏览器能够进行解码的数据编码方式,比如gzip。 Servlet能够向支持gzip的浏览器返回经gzip编码的HTML页面。许多情形 下这可以减少5到10倍的下载时间。
  • Accept-Language:浏览器所希望的语言种类,当服务器能够提供一种以 上的语言版本时要用到。
  • Connection:表示是否需要持久连接。
  • Content-Length:表示请求消息正文的长度。
  • Host:初始URL中的主机和端口。
  • Referer:包含一个URL,用户从该URL代表的页面出发访问当前请求的页 面。
  • User-Agent:浏览器类型,如果Servlet返回的内容与浏览器类型有关则 该值非常有用。
 
响应头
  • Allow 服务器支持哪些请求方法(如GET、POST等)
  • Server 处理请求的原始服务器的软件信息
  • Location 表示客户应当到哪里去提取文档。
  • Refresh:告诉浏览器过n秒后自动刷新页面
  • Content-Type 表示实体文档属于什么MIME类型。
  • Content-Length 返回的实体内容的长度
  • Last-Modified 文档的最后改动时间。
  • Content-Location:实体所在的实际位置路径
 
Get请求和Post请求有何不同?
• Get请求 1.请求的数据会附在URL之后,以?分割URL和传输数据,多个参数用& 连接。 2.特定浏览器和服务器对URL长度有限制,例如IE对URL长度的限制是 2083字节(2K+35)。
• Post请求 1.没有缓存,请求信息不会在地址栏中出现,这样很安全 2.请求信息会储存在请求实体内容,理论上没有大小限制,这样就保 证了不会出现请求信息过长而响应错误的信息。
 

01 HTTP协议_servlet基础的更多相关文章

  1. Django框架01 / http协议、web框架本质

    Django框架01 / http协议.web框架本质 目录 Django框架01 / http协议.web框架本质 1.http协议 1.1 http协议简介 1.2 什么是http协议 1.3 H ...

  2. ARP协议的基础知识

          关于ARP协议的基础知识 1.ARP的工作原理 本来我不想在此重复那些遍地都是的关于ARP的基本常识,但是为了保持文章的完整性以及照顾初学者,我就再啰嗦一些文字吧,资深读者可以直接跳过此节 ...

  3. 不惧面试:HTTP协议(1) - 基础扫盲

    v博客前言 先交代下背景,之前在一家公司面试.NET开发,去了先是做一份笔试题,有一半是关于HTTP协议的,技术总监直接面试,也是问一大堆HTTP协议的知识点,可能跟该公司的产品有关,该公司属于互联网 ...

  4. 01网络编程(基础知识+OSI七层协议+TCP与UDP)

    目录 01 网络编程 一.软件开发架构 1.1 CS架构 1.2 BS架构 二.网络理论前戏 2.1 简介 2.2 常见硬件 三.OSI七层协议(五层) 3.1 七层协议 3.2 五层协议 3.3 知 ...

  5. 【Java初探实例篇01】——Java语言基础

    示例系列,将对每节知识辅以实际代码示例,通过代码实际编写,来深入学习和巩固学习的知识点. IDE:intellij IDEA: 语言:Java 本次示例:Java语言基础知识的应用. 创建包day_4 ...

  6. XMPP协议相关基础概念(Strophe学习笔记)

    相关资料: XMPP官网http://xmpp.org/xmpp-software/libraries/ nginx的转发配置http://mineral.iteye.com/blog/448260 ...

  7. 接口测试01 - HTTP协议报文结构及示例

    HTTP基本架构 用一张简单的流程图来展示HTTP协议的基本架构,以便先有个基础的了解. 1)Web Client可以是浏览器.搜索引擎等等一切基于HTTP协议发起http请求的工具. 2)Web S ...

  8. 【01】SpringBoot2核心技术-基础入门

    SpringBoot 2 1. SpringBoot2核心技术-基础入门 01 Spring与SpringBoot 1.Spring 能做什么 1.1 Spring的能力 微服务:将一个应用的所有功能 ...

  9. _web基础_servlet基础

    一.了解Servlet的概念 Servlet定义:Servlet是基于Java技术的Web组件,由容器管理并产生动态的内容.Servlet引擎作为WEB服务器的扩展提供支持Servlet的功能.Ser ...

随机推荐

  1. Docs-.NET-C#-指南-语言参考-预处理器指令:#elif(C# 参考)

    ylbtech-Docs-.NET-C#-指南-语言参考-预处理器指令:#elif(C# 参考) 1.返回顶部 1. #elif(C# 参考) 2015/07/20 #elif 可以创建复合条件指令. ...

  2. Packetbeat简介

    Packetbeat简介 抓包示例 下载packetbeat 抓取elasticsearch的包 ①启动elasticsearch 启动packetbeat 配置es.yml ############ ...

  3. ISO/IEC 9899:2011 条款5——5.2.4 环境限制

    5.2.4 环境限制 1.翻译与执行环境都约束了语言翻译器和库的实现.下面概述了对一个顺应标准实现的语言相关的环境限制:库相关的限制在条款7中讨论. 5.2.4.1 翻译限制 1.实现应该能够翻译并执 ...

  4. socket服务端开发之测试使用threading和gevent框架

    socket服务端开发之测试使用threading和gevent框架 话题是测试下多线程和gevent在socket服务端的小包表现能力,测试的方法不太严谨,也没有用event loop + pool ...

  5. EasyUI实现图片的上传后与其他文本框的提交以及DataGrid中图片的展示

    图片即文件,在jsp中文件上传很简单,一个type为file的input,一个form指定enctype为multipart/form-data,通过post提交到后台利用apache的commons ...

  6. Springboot集成MapperFactory(ma.glasnost.orika.MapperFactory)类属性复制

    一.导入Jar() gradle方式 compile group: 'ma.glasnost.orika', name: 'orika-core', version: '1.5.1' maven方式 ...

  7. Python2和Python3的字符串编码和类型

    一.字符串编码和类型 任何编码格式的字符串,都可以和Unicode互相转换. gbk -> utf8 # 将字符串按指定格式进行解码,返回Unicode字符串unicode_str = gbk_ ...

  8. 一秒 解决 ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql 问题

    提示:ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'.前两天也出现过这个问题,网上找了一个比 ...

  9. Django——models中导入数据重复的解决办法

    如果你导入数据过多,导入时出错了,或者你手动停止了,导入了一部分,还有一部分没有导入.或者你再次运行上面的命令,你会发现数据重复了,怎么办呢? django.db.models 中还有一个函数叫 ge ...

  10. C#线程 BeginInvoke和EndInvoke使用方法

    一.C#线程概述 在操作系统中一个进程至少要包含一个线程,然后,在某些时候需要在同一个进程中同时执行多项任务,或是为了提供程序的性能,将要执行的任务分解成多个子任务执行.这就需要在同一个进程中开启多个 ...