HTTP
http1.0的会话方式:
四个步骤:
建立连接
发送请求信息
回送响应信息
关闭连接
浏览器与WEB服务器的连接过程是短暂的,每次连接只处理一个请求和响应。对每一个页面的访问,浏览器与WEB服务器都要建立一次的单独的连接。
浏览器到WEB服务器之间的所有通讯都是完全独立分开的请求和响应对。
HTTP1.1与HTTP1.0的比较
HTTP1.1的特点
在一个TCP连接上可以传送多个HTTP请求和响应
多个请求和响应过程可以重叠进行(不用等待上一次请求响应的的结束)
增加了更多的请求头和响应头
HTTP请求消息
请求消息的结构
一个请求行、若干消息头、以及实体内容、其中的一些消息头和实体内容都是可选的,消息头和实体内容之间要空行隔开。
请求行:请求行用于描述客户端的请求方案。请求的资源名称,以及使用的HTTP协议版本号。
消息头:消息头用于描述客户端请求那台主机,以及客户端的一些环境信息。
HTTP响应消息
响应消息的结构
一个状态行、若干个消息头、以及实体内容,其中一些消息头和实体内容都是可选的,消息头和实体内容之间要用空行隔开。
HTTP消息—>其他细节
响应消息的实体内容就是网页文件的内容,也就是在浏览器中使用查看源文件的方式所看到的内容。
一个使用GET方式的请求消息中不能包含实体内容,只能使用POST、PUT、和DELETE方式的请求消息中才可以包含实体内容。
对于HTTP1.1来说,如果HTTP消息中包括实体内容,且没用采用chunked传输编码方式,那么消息头部分必须包含内容长度的字段,否则,客户端和服务程序就无法知道实体内容何时结束。
在HTTP协议中,还可以使用简单的请求消息和响应消息,它们都没有消息头部分。简单的请求消息只能用于GET方式,且请求行中不能指定HTTP版本号。对于简单的请求消息,服务器放回简单的响应消息,简单的响应消息中之返回实体内容。
HTTP消息头
使用消息头,可以实现HTTP客户机与服务器之间的条件请求和应答,消息头相当于服务器和浏览器之间的一些暗号指令。
每个消息头包含一个头字段名称,然后依次是冒号、空格、值、回车和换行符。
消息头字段名是不区分大小写的,但习惯上将每个单词的第一个字母大写。
整个消息头部分中的各行消息头可按任意顺序排序。
消息头又可以分为通用消息头、请求头、响应头、实体头等四类。
许多请求头字段都允许客户端在值部分指定多个可接受的选项,多个项之间一逗号分隔。
有些头字段可以出现多次,例如,响应消息中可以包含多个“Warning”头字段。
HTTP协议详解
请求行与状态行
请求行
格式:请求方式 资源路径 HTTP版本号<CRLF>
举例:GET/test.html HTTP/1.1
请求方式:POST、HEAD、OPIONS、DELETE、TRACE、PUT
状态行
格式:HTTP版本号 状态码 原因描述<CRLF>
举例:HTTP/1.1 200 OK
使用GET和POST方式传递参数
在URL地址后面可以附加一些参数
GET
特点:传送的数据量是有限制的,一般限制在1KB一下
POST方式
举例:
特点:传递的数据量要比GET方式传递的数据量大得多。
响应状态码
响应状态码用于表示服务器对请求的各种不同处理结果和状态,他是一个三位的十进制数。响应状态码可归为5中类别,使用最高位为1到5来进行分类,如下所示;
1、100~199
表示成功接收请求,要求客户端继续提交下一个请求才能完成整个处理过程。
2、200~299
表示成功接收请求并已完成整个处理过程。
3、300~399
为完成请求,客户端需进一步细化请求。例如请求的资源已经移动一个新地址。
4、400~499
客户端的请求有错误
5、500~599
服务器端出现错误。
通用信息头
通用信息头字段既能用于请求消息,也能用于响应消息,它包括一些被传输的实体内容没有关系的常用消息头字段。
请求头
请求头字段用于在请求消息中向服务器传递附加信息,主要包括客户端可以接受的数据类型,压缩方法、语言、以及发出请求的超链接所属网页的URL地址等信息。
http常用请求头
Accept:用于告诉服务器,客户机支持的数据类型。
Accept-Charset:用于告诉服务器,客户机采用的编码
Accept-Encoding:用于告诉服务器,客户机支持的数据压缩格式
Accept-Language:客户机的语言环境
Host:客户机通过这个头告诉服务器,想访问的主机名
If-Modified-Since:客户机通过这个头告诉服务器,资源的缓存时间
Referer:客户机通过这个头告诉服务器,它是从那个资源来访问服务器的(防盗链)
User-Agent:客户机通过这个头告诉服务器,客户机的软件环境
Cookies:客户机通过这个头可以向服务器带数据
Connection:告诉服务器请求完是否保持连接
http常用响应头
Location:这个头配合302状态使用,用于告诉客户找谁
Server:服务器通过这个头,告诉浏览器服务器的类型
Content-Encoding:服务器通过这个头,告诉浏览器的数据压缩格式
Content-Length:服务器通过这个头,告诉浏览器回送数据的长度
Content-Language:服务器通过这个头,告诉浏览器回送的语言环境
Content-Type:服务器通过这个头,告诉浏览器回送的数据类型
Last-Modified:服务器通过这个头,告诉浏览器当前资源的最后缓存时间
Refresh:服务器通过这个头,告诉浏览器隔多长时间刷新一次
response.setHerder(“refresh”, “3;url= ‘http://www.sina.com’ ”);
Content-Disposition:服务器通过这个头,告诉浏览器以下载方式打开
Transfer-Encoding:服务器通过这个头,告诉浏览器数据的传送格式
ETag:缓存相关的头
Expires:服务器通过这个头,告诉浏览器把回送的资源缓存多长时间,-1或0,则是不缓存
Cache-Control:no-cache
Pragma:no-cache
服务器通过以上这两个头,也是控制浏览器不要缓存数据
Http请求头字段
Range:range头指示服务器只传输一部分Web资源,这个头可以用于实现断点续传功能。Range字段可以通过三种格式设置要传输的字节范围;
Range:bytes = 1000-2000
传输范围从1000到2000字节
Range:bytes = 1000-
传输Web资源中第1000个字节以后的所有内容
Range:bytes = 1000
传输最后的1000个字节
Http响应头字段
Accept-Ranges:这个字段说明Web服务器是否支持Range,则返回Accept-Range:bytes,如果不支持,则返回Accept-Ranges:none。
Content-Range:指定了返回的Web资源的字节范围,这个字段的格式是:例子:Content-Range:1000-3000/5000
实体头
实体头用作实体内容的元信息,描述了实体内容的属性,包括实体信息类型、长度、压缩方法、最后一次修改时间、数据有效期等。
Win7中telnet的使用
控制面板-程序-打开或关闭windows功能,在这里你可以看到许多服务项,选择telnet服务器和telnet客户端确定即可。
在控制面板-管理工具-服务中,找到telnet并且右键属性改为手动,再通过手动启动。
Telent 输入telnet localhost 8080
输入Ctrl+]键
分享到:
相关推荐
**HTTP(超文本传输协议)概述** HTTP,全称为HyperText Transfer Protocol,是互联网上应用最广泛的一种网络协议。它定义了客户端(如浏览器)与服务器之间如何交换数据的规则。HTTP是基于TCP/IP通信协议来传递...
- Java提供了丰富的网络编程API,如`Socket`、`ServerSocket`、`URL`等,用于创建TCP/IP连接和HTTP通信。 10. **Java的库与API** - 核心库:如`java.lang`、`java.util`、`java.io`等,提供了大量预定义的类和...
HTTP 协议概述 HTTP 协议是一种应用层协议,主要用于分布式超媒体信息系统。它的主要特点是支持客户/服务器模式、简单快速、灵活、无连接和无状态。HTTP 协议的工作机制是基于请求和响应,浏览器和 Web 服务器之间...
【JSP概述】 JSP(JavaServer Pages)是一种基于Java技术的动态网页开发标准,它允许开发者在HTML或者XML文档中嵌入Java代码,从而实现动态内容的生成。JSP是Java EE(Enterprise Edition)的一部分,用于构建Web...
3. 使用HTTP头部策略:例如Content-Security-Policy,限制浏览器加载资源的方式,阻止恶意脚本执行。 4. 更新和修补:定期更新服务器软件,修复已知的安全漏洞。 5. 应用防火墙(WAF):使用Web应用防火墙过滤恶意...
- **Servlet**:Servlet 是一种服务器端的小程序,用于响应 HTTP 请求。它可以处理复杂的业务逻辑,并与数据库进行交互。 - **JavaBean**:JavaBean 是 Java EE 中用于封装数据的对象,通常用于在不同组件之间传递...
02-ajax及http协议概述
此http协议概述0.1版本为本人购买并阅读HTTP协议概述整书及整理相关视频所做,只为给初学者一种更快认识协议的方式。此版本为V0.1随着深入不断添加
3. 使用HTTP-only Cookie:设置关键Cookie为HTTP-only,防止通过JavaScript读取。 4. 启用Content Security Policy(CSP):限制浏览器只允许加载指定来源的资源。 5. 定期更新和打补丁:确保系统和应用程序的最新...
### HTTP请求方法的概述及应用 #### 一、HTTP请求方法的概述 HTTP请求方法是客户端(例如浏览器)与服务器之间交互的一种手段,用于获取特定资源或执行特定操作。这些方法在HTTP协议中定义,遵循典型的客户端-...
### SAS基本概述与关键技术解析 #### 一、SAS(Serial Attached SCSI)定义与起源 SAS,全称为Serial Attached SCSI,是一种串行连接技术,旨在替代传统的并行SCSI接口,提供更高速的数据传输能力和更高的可靠性。...
在Web开发领域,掌握基础是至关重要的,尤其是HTTP协议和J2EE概述的理解。本教程旨在为初学者提供一个全面的入门指南,帮助你更好地理解这两个核心概念。 **HTTP协议**(Hypertext Transfer Protocol)是互联网上...
在本概述中,我们将深入探讨这两个技术的概念、工作原理以及它们如何协同工作。 Servlet是Java编程语言的一个接口,用于扩展服务器的功能。它允许开发者创建能够处理HTTP请求并生成响应的Java程序。Servlet在服务器...
【WebService概述】 Web Service是一种基于XML(可扩展标记语言)的通信技术,它允许不同的系统在互联网或内部网络上相互通信。Web Service的核心概念包括SOAP(简单对象访问协议)、WSDL(Web服务描述语言)和UDDI...
通过浏览器访问`http://hostname:port/console`即可启动管理控制台。 4. **运行时对象与配置对象**:运行时对象指的是在WebLogic服务器运行时创建的实体,如应用程序实例、JMS队列等。配置对象则是在管理控制台中...
《PHP详细语法概述》 PHP,全称为“PHP:Hypertext Preprocessor”,是一种广泛应用于Web开发的开源脚本语言。它的设计目标是让开发者能够快速地编写动态网页。PHP的主要特点是与HTML的无缝融合,服务端执行,以及...
【LoadRunner 概述】 LoadRunner 是一款由 Micro Focus 公司开发的强大的负载和性能测试工具,广泛应用于企业级应用系统的性能验证。它通过模拟大量用户并发执行各种业务操作,来评估系统的承载能力和稳定性,确保...