- 浏览: 497458 次
- 性别:
- 来自: 山东
文章分类
最新评论
-
wjpiao:
...
HttpClient4模拟登录回贴 -
spring_springmvc:
可以参考最新的文档:如何在eclipse jee中检出项目并转 ...
Maven-pom.xml -Dependency Scope 区别 -
7454103:
京东通信此次推出的特权卡名为“自由行”,主打无套餐、无合约、无 ...
判断手机号码是否合法--正则 -
di1984HIT:
谢谢啊~学习了~
Maven Nexus 管理员密码重置 -
BigCat2013:
XMLFileUtil.getAttributeValue() ...
java调用sql XML配置文件 笔记
HTTP协议是基于请求/响应范式的。
-------------------------------------------------------
http协议原理
WWW是以Internet作为传输媒介的一个应用系统,WWW网上最基本的传输单位是Web网页。WWW的工作基于客户机/服务器计算模型,由Web 浏览器(客户机)和Web服务器(服务器)构成,两者之间采用超文本传送协议(HTTP)进行通信。HTTP协议是基于TCP/IP协议之上的协议,是Web浏览器和Web服务器之间的应用层协议,是通用的、无状态的、面向对象的协议。
请求:Web浏览器通过socket向Web服务器提交请求。
HTTP的请求一般是GET或POST命令(POST用于FORM参数的传递)。
GET命令的格式为:GET 路径/文件名 HTTP/1.0文件名指出所访问的文件,
HTTP/1.0指出Web浏览器使用的HTTP版本。
响应:Web浏览器提交请求后,通过HTTP协议传送给Web服务器。Web服务器接到后,
进行事 务处理,处理结果又通过HTTP传回给Web浏览器,
从而在Web浏览器上显示出所请求的页面
在这里,要说客户端与服务器,还得了解下服务器的结构:
一般的服务器,它最大的特点就是只能处理静态页面,越来越不能满足客户的需求,对此,在java中我们采用在服务器中添加容器在利用servlet/jsp的方式来处理些动态请求。
都知道在客户端浏览器访问一个网站叫发送请求,网站再发回页面叫发送响应,这就是一次客户端与服务器之间的交互,它其中最主要的就是依赖于http协议进行传输的。
-------------------------------------------------------
HTTP协议是基于请求/响应范式的。
HTTP的请求格式:统一资源标识符、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。
------------------------------
请求方法URLHTTP协议的版本号
提交的元信息
**空行**
实体
------------------------------
HTTP的响应格式:一个状态行包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
--------------------------------
HTTP协议的版本号应答状态码应答状态码说明
接收的元信息
**空行**
实体
--------------------------------
下面介绍一下HTTP协议的内部操作过程。
首先,简单介绍基于HTTP协议的客户/服务器模式的信息交换过程,如下图所示,它分四个过程,建立连接、发送请求信息、发送响应信息、关闭连接。
//图略:
下面,讨论HTTP协议下客户/服务器模式中信息交换的实现。
1.建立连接 连接的建立是通过申请套接字(Socket)实现的。客户打开一个套接字并把它约束在一个端口上,如果成功,就相当于建立了一个虚拟文件。以后就可以在该虚拟文件上写数据并通过网络向外传送。
2.发送请求
打开一个连接后,客户机把请求消息送到服务器的停留端口上,完成提出请求动作。
HTTP/1.0 请求消息的格式为:
请求消息=请求行(通用信息|请求头|实体头)CRLF[实体内容]
请求行=方法 请求URL HTTP版本号 CRLF
方 法=GET|HEAD|POST|扩展方法
URL=协议名称+宿主名+目录与文件名
请求行中的方法描述指定资源中应该执行的动作,常用的方法有GET、HEAD和POST。不同的请求对象对应GET的结果是不同的,对应关系如下:
对象 GET的结果
文件 文件的内容
程序 该程序的执行结果
数据库查询 查询结果
HEAD——要求服务器查找某对象的元信息,而不是对象本身。
POST——从客户机向服务器传送数据,在要求服务器和CGI做进一步处理时会用到POST方法。POST主要用于发送HTML文本中FORM的内容,让CGI程序处理。
GET——根据URL,会请求文件、数据库查询结果、程序运行结果等多种内容。
头信息又称为元信息,即信息的信息,利用元信息可以实现有条件的请求或应答。
常用的头信息包括:
Accept:浏览器可接受的MIME类型。
Accept Charset:浏览器可接受的字符集。
Accept Encoding:浏览器能够进行解码的数据编码方式,比如gzip。
Accept Language:浏览器所希望的语言种类,当服务器能够提供一种以上的语言版本时要用到。
Authorization:授权信息,通常出现在对服务器发送的WWW - Authenticate头的应答中。
Connection:表示是否需要持久连接。如果Servlet看到这里的值为“Keep Alive”,或者看到请求使用的是HTTP 1.1(HTTP 1.1默认进行持久连接),它就可以利用持久连接的优点,当页面包含多个元素时(例如Applet,图片),显著地减少下载所需要的时间。要实现这一点,Servlet需要在应答中发送一个Content Length头,最简单的实现方法是:先把内容写入ByteArrayOutputStream,然后在正式写出内容之前计算它的大小。
Content Length:表示请求消息正文的长度。
Cookie:这是最重要的请求头信息之一,参见后面《Cookie处理》一章中的讨论。
From:请求发送者的email地址,由一些特殊的Web客户程序使用,浏览器不会用到它。
Host:初始URL中的主机和端口。
。。。
请求头——告诉服务器怎样解释本次请求,主要包括用户可以接受的数据类型、压缩方法和语言等。
实体头——实体信息类型、长度、压缩方法、最后一次修改时间、数据有效期等。
实体——请求或应答对象本身。
一个请求的例子为:
GEThttp://networking.zju.edu.cn/zju/index.htmHTTP/1.0
3.发送响应
服务器在处理完客户的请求之后,要向客户机发送响应消息。
HTTP/1.0的响应消息格式如下:
响应消息=状态行(通用信息头|响应头|实体头) CRLF 〔实体内容〕
状态行=HTTP版本号 状态码 原因叙述
状态码表示响应类型
1×× 保留
2×× 表示请求成功地接收
3×× 为完成请求客户需进一步细化请求
4×× 客户错误
5×× 服务器错误
响应头的信息包括:服务程序名,通知客户请求的URL需要认证,请求的资源何时能使用。下面是一些常用的响应头:
Date:Mon,08Sep200317:10:49GMT
Server:Apache/1.3.23
Last-Modified:Mon,08Sep200303:48:19GMT
ETag:"32417-c4-3e5d8a83"
Accept-Ranges:bytes
Content-Length:196
Connection:close
Content-Type:text/html
一个响应的例子为:
HTTP/1.0200
4.关闭连接
客户和服务器双方都可以通过关闭套接字来结束TCP/IP对话
示例:
下面用最常用的GET方法,来说明具体的报文应用
----------------------------------
GEThttp://www.youhost.comHTTP/1.0
accept:www/source;text/html;image/gif;image/jpeg;*/*
User_Agent:myAgent
**空行**
-----------------------------------
这个报文是向www.youhost.com主机请求一个缺省HTML文档。客户端HTTP协议版本
号是1.0版,元信息包括可接收的文件格式,用户代理,每一段之间用回车换行符分
隔,最后以一个空行结束。发向服务器后,如果执行过程正常,服务器返回以下代码:
------------------------------------
HTTP/1.1200OK
Date:Tue,14Sep199902:19:57GMT
Server:Apache/1.2.6
Connection:close
Content-Type:text/html
**空行**
......
------------------------------------
HTTP/1.1表示这个HTTP服务器是1.1版,200是服务器对客户请求的应答状态码,OK
是对应答状态码的解释,之后是这个文档的元信息和文档正文。(相关应答状态码和元
信息的解释请参阅Inetrnet标准草案:RFC2616)。
参考资料:
基于混合TCP-UDP的HTTP协议实现方法
HTTP协议三--断点续传
-------------------------------------------------------
http协议原理
WWW是以Internet作为传输媒介的一个应用系统,WWW网上最基本的传输单位是Web网页。WWW的工作基于客户机/服务器计算模型,由Web 浏览器(客户机)和Web服务器(服务器)构成,两者之间采用超文本传送协议(HTTP)进行通信。HTTP协议是基于TCP/IP协议之上的协议,是Web浏览器和Web服务器之间的应用层协议,是通用的、无状态的、面向对象的协议。
请求:Web浏览器通过socket向Web服务器提交请求。
HTTP的请求一般是GET或POST命令(POST用于FORM参数的传递)。
GET命令的格式为:GET 路径/文件名 HTTP/1.0文件名指出所访问的文件,
HTTP/1.0指出Web浏览器使用的HTTP版本。
响应:Web浏览器提交请求后,通过HTTP协议传送给Web服务器。Web服务器接到后,
进行事 务处理,处理结果又通过HTTP传回给Web浏览器,
从而在Web浏览器上显示出所请求的页面
在这里,要说客户端与服务器,还得了解下服务器的结构:
一般的服务器,它最大的特点就是只能处理静态页面,越来越不能满足客户的需求,对此,在java中我们采用在服务器中添加容器在利用servlet/jsp的方式来处理些动态请求。
都知道在客户端浏览器访问一个网站叫发送请求,网站再发回页面叫发送响应,这就是一次客户端与服务器之间的交互,它其中最主要的就是依赖于http协议进行传输的。
-------------------------------------------------------
HTTP协议是基于请求/响应范式的。
HTTP的请求格式:统一资源标识符、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。
------------------------------
请求方法URLHTTP协议的版本号
提交的元信息
**空行**
实体
------------------------------
HTTP的响应格式:一个状态行包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
--------------------------------
HTTP协议的版本号应答状态码应答状态码说明
接收的元信息
**空行**
实体
--------------------------------
下面介绍一下HTTP协议的内部操作过程。
首先,简单介绍基于HTTP协议的客户/服务器模式的信息交换过程,如下图所示,它分四个过程,建立连接、发送请求信息、发送响应信息、关闭连接。
//图略:
下面,讨论HTTP协议下客户/服务器模式中信息交换的实现。
1.建立连接 连接的建立是通过申请套接字(Socket)实现的。客户打开一个套接字并把它约束在一个端口上,如果成功,就相当于建立了一个虚拟文件。以后就可以在该虚拟文件上写数据并通过网络向外传送。
2.发送请求
打开一个连接后,客户机把请求消息送到服务器的停留端口上,完成提出请求动作。
HTTP/1.0 请求消息的格式为:
请求消息=请求行(通用信息|请求头|实体头)CRLF[实体内容]
请求行=方法 请求URL HTTP版本号 CRLF
方 法=GET|HEAD|POST|扩展方法
URL=协议名称+宿主名+目录与文件名
请求行中的方法描述指定资源中应该执行的动作,常用的方法有GET、HEAD和POST。不同的请求对象对应GET的结果是不同的,对应关系如下:
对象 GET的结果
文件 文件的内容
程序 该程序的执行结果
数据库查询 查询结果
HEAD——要求服务器查找某对象的元信息,而不是对象本身。
POST——从客户机向服务器传送数据,在要求服务器和CGI做进一步处理时会用到POST方法。POST主要用于发送HTML文本中FORM的内容,让CGI程序处理。
GET——根据URL,会请求文件、数据库查询结果、程序运行结果等多种内容。
头信息又称为元信息,即信息的信息,利用元信息可以实现有条件的请求或应答。
常用的头信息包括:
Accept:浏览器可接受的MIME类型。
Accept Charset:浏览器可接受的字符集。
Accept Encoding:浏览器能够进行解码的数据编码方式,比如gzip。
Accept Language:浏览器所希望的语言种类,当服务器能够提供一种以上的语言版本时要用到。
Authorization:授权信息,通常出现在对服务器发送的WWW - Authenticate头的应答中。
Connection:表示是否需要持久连接。如果Servlet看到这里的值为“Keep Alive”,或者看到请求使用的是HTTP 1.1(HTTP 1.1默认进行持久连接),它就可以利用持久连接的优点,当页面包含多个元素时(例如Applet,图片),显著地减少下载所需要的时间。要实现这一点,Servlet需要在应答中发送一个Content Length头,最简单的实现方法是:先把内容写入ByteArrayOutputStream,然后在正式写出内容之前计算它的大小。
Content Length:表示请求消息正文的长度。
Cookie:这是最重要的请求头信息之一,参见后面《Cookie处理》一章中的讨论。
From:请求发送者的email地址,由一些特殊的Web客户程序使用,浏览器不会用到它。
Host:初始URL中的主机和端口。
。。。
请求头——告诉服务器怎样解释本次请求,主要包括用户可以接受的数据类型、压缩方法和语言等。
实体头——实体信息类型、长度、压缩方法、最后一次修改时间、数据有效期等。
实体——请求或应答对象本身。
一个请求的例子为:
GEThttp://networking.zju.edu.cn/zju/index.htmHTTP/1.0
3.发送响应
服务器在处理完客户的请求之后,要向客户机发送响应消息。
HTTP/1.0的响应消息格式如下:
响应消息=状态行(通用信息头|响应头|实体头) CRLF 〔实体内容〕
状态行=HTTP版本号 状态码 原因叙述
状态码表示响应类型
1×× 保留
2×× 表示请求成功地接收
3×× 为完成请求客户需进一步细化请求
4×× 客户错误
5×× 服务器错误
响应头的信息包括:服务程序名,通知客户请求的URL需要认证,请求的资源何时能使用。下面是一些常用的响应头:
Date:Mon,08Sep200317:10:49GMT
Server:Apache/1.3.23
Last-Modified:Mon,08Sep200303:48:19GMT
ETag:"32417-c4-3e5d8a83"
Accept-Ranges:bytes
Content-Length:196
Connection:close
Content-Type:text/html
一个响应的例子为:
HTTP/1.0200
4.关闭连接
客户和服务器双方都可以通过关闭套接字来结束TCP/IP对话
示例:
下面用最常用的GET方法,来说明具体的报文应用
----------------------------------
GEThttp://www.youhost.comHTTP/1.0
accept:www/source;text/html;image/gif;image/jpeg;*/*
User_Agent:myAgent
**空行**
-----------------------------------
这个报文是向www.youhost.com主机请求一个缺省HTML文档。客户端HTTP协议版本
号是1.0版,元信息包括可接收的文件格式,用户代理,每一段之间用回车换行符分
隔,最后以一个空行结束。发向服务器后,如果执行过程正常,服务器返回以下代码:
------------------------------------
HTTP/1.1200OK
Date:Tue,14Sep199902:19:57GMT
Server:Apache/1.2.6
Connection:close
Content-Type:text/html
**空行**
......
------------------------------------
HTTP/1.1表示这个HTTP服务器是1.1版,200是服务器对客户请求的应答状态码,OK
是对应答状态码的解释,之后是这个文档的元信息和文档正文。(相关应答状态码和元
信息的解释请参阅Inetrnet标准草案:RFC2616)。
参考资料:
基于混合TCP-UDP的HTTP协议实现方法
HTTP协议三--断点续传
发表评论
-
easyui combobox下拉效果 可输入 模糊查询
2015-12-24 13:03 18049<link rel="stylesheet&q ... -
字符串编码生成实现
2015-08-06 09:28 745//为长度为22的字符串 编码生成实现 //格式:XAAA ... -
eclipse设置默认指向/src/main/webapp目录
2015-02-11 09:28 3432改配置文件, 打开.setting 文件夹下的 org.ecl ... -
判断手机号码是否合法--正则
2014-10-30 16:26 1691import java.util.regex.Matc ... -
JAVA集合
2014-09-30 13:04 613ArrayList和LinkedList区别 1.Ar ... -
乱码???
2014-09-12 16:57 952http://blog.csdn.net/youyue/art ... -
APACHE+TOMCAT配置负载均衡
2014-09-09 09:37 1234目标: 使用 apache 和 tomcat 配置一个可以应 ... -
日期格式化取月日
2014-08-13 14:18 813日期格式化 SimpleDateFormat sdf = n ... -
java实现获取各种浏览器版本号及类型
2014-07-22 13:28 4560引用public Map<String,String&g ... -
两个数的百分比
2014-02-25 11:50 1007public static void main(String[ ... -
java补全
2014-02-21 13:27 914import java.text.NumberFormat; ... -
oracle日期相减
2014-02-12 16:43 1444oracle日期相减 --MONTHS_BETWEEN(dat ... -
PermGen space及其解决方法
2014-01-23 10:00 1181-Xms256m -Xmx1024m -XX:PermSize ... -
webservcie-wsimport
2013-08-30 12:32 785wsimport wsimport是在JDK的bin目录下的 ... -
tomcat服务启动取IP4地址设置
2013-06-17 15:59 12351.Open launch configuration 2. ... -
Windows反向代理安装配置(双机)笔记
2013-06-07 09:05 3282引用 下载 httpd-2.2.22-win32-x86-no ... -
Maven-pom.xml -Dependency Scope 区别
2013-06-06 09:38 6038如下图报错,找错 1. 找 ... -
webservice调用异常
2013-06-03 16:27 1260Exception in thread "mai ... -
spring防止内存泄露配置
2013-05-07 15:43 806<!-- Spring 刷新Introspector ... -
删除字符串中带中文的指定字符
2013-04-23 08:50 1060public class Test { /** ...
相关推荐
HTTP网络协议的工作原理,可以增进对网络协议的了解。
本文描述http协议基本工作原理,是web网站开发人员了解http协议指导丛书
1、熟悉Web系统的工作原理,掌握HTTP协议的工作机制; 2、利用Telnet工具或其他工具提供TCP端接,在TCP连接的基础上,手动实施基于HTTP协议的Web程序访问过程; 3、理解邮件服务的工作原理; 4、了解POP3协议及接收...
tcp-ip详解卷3:tcp事务协议,http,nntp和unix域协议,比较详细,愿意了解协议原理的爱钻研的人士请下
通过本毕业设计题目的研究和实践,学生可以深入理解Java多线程技术和线程安全机制,掌握Http协议的基本原理和应用方法,提高软件设计和开发能力。同时,学生还可以了解断点续传技术在实际应用中的重要性,以及如何...
在了解HTTP断点续传的原理之前,先来说说HTTP协议,HTTP协议是一种基于tcp的简单协议,分为请求和回复两种。请求协议是由客户机(浏览器)向服务器(WEB SERVER)提交请求时发送报文的协议。回复协议是由服务器(web ...
掌握HTTP协议是Web开发最基础的一环,然而很多程序猿对于HTTP协议基本不了解,或者只了解其中狭小的一部分,导致很多程序猿无法快速成长,陷入重复coding的地狱。这个项目从原理到实践,用完整的例子展示HTTP协议的...
在了解网络层次结构及网络协议基本概念基础上,利用Wireshark工具抓包,分析: (1)TCP/IP协议及其层次结构; (2)TCP/IP协议的报文封装方式; (3)常用协议(以太帧、PPPoE、ARP/RARP、IP、ICMP、TCP、UDP等)...
目录 前言HTTP协议HTTP服务器文件服务器练习 前言 HTTP协议 HTTP服务器 文件... HTTP协议 要理解Web服务器程序的工作原理,首先,我们要对HTTP协议有基本的了解。如果你对HTTP协议不太熟悉,先看一看HTTP
HTTP协议:了解HTTP协议的基本原理、特点、工作流程等。 HTML/CSS/JavaScript:掌握HTML/CSS/JavaScript的基础知识,能够进行基本的网页开发和调试。 前端框架:学习前端框架,例如React、Vue等,掌握其基本原理和...
《HTTP权威指南》由古尔利所著,《HTTP权威指南》详细解释了HTTP协议,包括HTTP是如何工作的,如何用HTTP来开发基于Web的应用程序,核心的因特网协议如何与架构构建块交互,如何正确实现因特网客户和服务器等。...
新手学习网络工程师的必备资源~!此课件是针对《计算机网络应用层协议与应用》,详解了网络应用层的基础。 课程目标: 理解TCP/IP应用层协议 了解TCP/IP协议的应用层 ...了解HTTP协议以及静态网页和动态网页的概念
直接打开代码中的HttpFileServer的main函数即可查看效果和调试,调试一边你便了解原理了。
# 大家说的Python爬虫是指什么?...4. **网络爬虫原理**:了解HTTP协议和网页结构,理解爬虫的基本原理。HTTP协议是Web应用程序中的一种通信协议,而了解网页结构可以帮助我们更好地理解网页的内容和布局。
本章内容 理解Web服务器的作用 理解浏览器的工作原理 了解HTTP协议 会使用浏览器的开发者工具查看HTTP请求和HTTP响应 了解web应用的部署结构,会在tomcat上部署静态页面 会启动tomcat,知道如何访问部署在tomcat中的...
《HTTP权威指南》由古尔利所著,《HTTP权威指南》详细解释了HTTP协议,包括HTTP是如何工作的,如何用HTTP来开发基于Web的应用程序,核心的因特网协议如何与架构构建块交互,如何正确实现因特网客户和服务器等。...
了解web中的http协议,掌握浏览器请求原理,熟悉http协议
计算机网络期末复习 计算机网络期末复习可以围绕以下几个关键部分进行: 网络基础知识:了解计算机网络的基本概念、组成... 应用层协议与服务:复习常见的应用层协议,如HTTP、FTP、SMTP、DNS等。了解它们的工作原理
毕业论文——包含了一篇探讨多线程与线程安全实践项目背景、技术原理和实现过程的学术论文,可作为论文撰写参考。通过阅读论文,学习者可以了解项目的理论基础,深入理解项目的实现细节,提升分析和解决问题的能力。...
- 学习HTTP协议:了解HTTP协议的基本原理和常用请求方法。 - 学习Servlet和JSP:掌握Java Web开发的基本框架,了解Servlet的生命周期和JSP的使用。 3. 数据库与SQL: - 学习关系型数据库:了解数据库的基本概念...