您的位置:首页 > 编程语言 > Java开发

java自学之路-----web_基础、请求头和响应头

2014-11-10 10:08 323 查看

WEB基础:

定义:表示网页,用于表示Internet主机上供外界访问的资源

静态:web页面中供用户浏览的数据始终是不变的,技术:html

动态:web页面中供人们浏览的数据是由程序产生的,不同时间访问web页面看到的内容都是不同的,技术:JSP/Servlet、ASP、PHP

web服务器:ie访问服务器,服务器访问资源文件。资源文件将信息给服务器,服务器再将信息返回给ie

常见的:

1.WebLogic,BEA公司的产品,目前应用最广泛的Web服务器,支持J2EE规范,

2.Websphere:IBM公司,支持J2EE规范

3.Tomcat:apache公司,支持全部JSP以及Servlet规范

Tomcat目录结构:

bin:存放启动和关闭Tomcat的脚本文件

conf:存放Tomcat服务器的各种配置文件

lib:存放Tomcat服务器的支撑jar包

logs:存放Tomcat的日志文件

temp:存放Tomcat运行时产生的临时文件

webapps:web应用的所在目录,供外界访问的web资源的存放目录

word:Tomcat的工作目录

web资源的访问流程:



http协议{

1.Hypertext Transfer Protocol(超文本传输协议),是TCP/IP协议的一个应用层协议,用于定义web服务器与web服务器之间交换数据的过程

2.客户端连上web服务器后,若想获得web服务器中某个web资源,需遵守一定的通讯格式,http协议用于定义客户端和web服务器通讯的格式。telnet程序可以进行手动的连接web服务器,并使用http协议获得数据)

3.版本:HTTP/1.0(一个连接只能获得一次资源) HTTP/1.1(一个连接可以获得多次资源)

请求信息{

定义:客户端连上服务器之后,向服务器请求某个web资源,称之为客户端向服务器发送了一个http请求,一个完整的http请求包括:一个请求行、若干请求头、以及实体内容

GET /books/java.html HTTP/1.1

Accept: */*

Accept-Language: en-us

Connection: Keep-Alive

Host: localhost

Referer: http://localhost/links.asp
User-Agent: Mozilla/4.0

Accept-Encoding: gzip, deflate

xxxxxxx

请求行

 

 

多个消息头

 

 

 

 

一个空行

实体内容

请求行:请求方式、请求资源的名称、使用的http协议的版本号

请求方式:POST(数据放在请求的实体,数据量无限制)、GET(数据以跟在url地址后的方式提交,数据容量不得超过1K)、HEAD、OPTIONS、DELETE、TRACE、PUT,默认情况下浏览器向服务器访问的方式都是GET、通过更改表单的提交方式可以将请求方式改为POST

请求头:用来描述客户端请求的主机名,以及客户端的环境信息{

Accept:通知服务器,客户机支持的数据类型

Accept-Charset:客户机采用的编码

Accept-Encoding:客户机支持的数据压缩格式

Accept-Language:客户机的语言环境(例如:中文的系统访问获得的是中文页面)

Host:客户机想要访问的主机名

If-Modified-Since:通知服务器,客户机获得的资源的缓存时间

Referer:告诉服务器,客户机是从哪个资源访问服务器的(防盗链使用)

User-Agent:客户机的软件环境(浏览器版本,操作系统信息)

Cookie:可以向服务器带数据

Connection:告诉服务器,访问完数据是关闭还是保持连接

Date:请求时间

Range:指示服务器只传输一部分web资源,用于实现断点续传的功能。Range头域可以请求实体的一个或者多个子范围。例如:表示头500个字节:bytes=0-499 表示最后一个500字节:bytes=-500

}

}

响应信息{

定义:代表服务器向客户端回送的数据,包括:一个状态行、若干消息头、以及实体内容
HTTP/1.1 200 OK

Server: Microsoft-IIS/5.0

Date: Thu, 13 Jul 2000 05:46:53 GMT

Content-Length: 2291

Content-Type: text/html

Cache-control: private

 

<HTML>

<BODY>

状态行

 

 

多个消息头

 

 

一个空行

实体内容

状态行:描述服务器对请求的处理结果。包含协议版本、状
4000
态码、状态说明

状态码:

状态码

含义

100~199

表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程

200~299

表示成功接收请求并已完成整个处理过程,常用200

300~399

为完成请求,客户需进一步细化请求。例如,请求的资源已经移动一个新地址,常用302、307和304

400~499

客户端的请求有错误,常用404

500~599

服务器端处理资源出现错误,常用500

响应头:描述服务器的基本信息,以及数据的描述,服务器通过这些数据的描述信息通知客户机如何处理数据{

Location:配合302状态码使用,用来告诉客户机找那个资源(重定向,改变uri地址)

Server:告诉浏览器服务器的类型

Content-Encoding:告诉浏览器数据的压缩格式(用于将数据进行压缩,在告诉浏览器压缩格式,浏览器才能进行解析)

Content-Length:告诉浏览器回送数据的长度

Content-Type:告诉浏览器回送的数据的类型(查看服务器的web.xml文件查看不同格式对应不同的写法)

Last-Modified:告诉浏览器当前资源的缓存时间

Refresh:告诉浏览器隔多长时间刷新一次(可以在后面跟上一个地址,就会刷新到另一个资源)

Content-Disposition:告诉浏览器以下载的方式打开数据

Transfer-Encoding:告诉浏览器数据的传输格式

ETag:缓存相关的信息(相当于一个标识,浏览器根据该标识判断是否需要使用缓存)

Expires:告诉浏览器把会送的资源缓存多长时间,-1和0为不缓存

Cache-control:no-cache  Pragma:no-cache  :浏览器通过这两个信息,控制浏览器不要缓存数据

Accept-Range:说明服务器是否支持range。支持返回bytes,不支持返回none

}

实体内容:服务器向客户端回送的数据(与响应头用空行分割)

}

}

GET /books/java.html HTTP/1.1

Accept: */*

Accept-Language: en-us

Connection: Keep-Alive

Host: localhost

Referer: http://localhost/links.asp
User-Agent: Mozilla/4.0

Accept-Encoding: gzip, deflate

xxxxxxx

请求行

 

 

多个消息头

 

 

 

 

一个空行

数据

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java http协议 缓存