`
ruilin521314
  • 浏览: 881828 次
文章分类
社区版块
存档分类
最新评论

web 服务器

 
阅读更多

一个简单的Web服务器

(java) Web服务器也成为超文本传输协议(HTTP)服务器
因为它使用HTTP来跟客户端进行通信的,这通常是个web浏览器。一个基于java的web服务器使用两个重要的类:java.net.Socket和java.net.ServerSocket,并通过HTTP消息进行通信。
超文本传输协议(HTTP)
HTTP是一种协议,允许web服务器和浏览器通过互联网进行来发送和接受数据。它是一种请求和响应协议
客户端请求一个文件而服务器响应请求。HTTP使用可靠的TCP连接--TCP默认使用80端口。
在HTTP中,始终都是客户端通过建立连接和发送一个HTTP请求从而开启一个事务。web服务器不需要联系客户端或者对客户端做一个回调连接。无论是客户端或者服务器都可以提前终止连接。举例来说,当你正在使用一个web浏览器的时候,可以通过点击浏览器上的停止按钮来停止一个文件的下载进程,从而有效的关闭与web服务器的HTTP连接。

HTTP请求

一个HTTP请求包括三个组成部分:
  • 方法 — 统一资源标识符(URI) — 协议/版本
  • 请求的头部
  • 主体内容
下面是一个HTTP请求的例子:
POST /examples/default.jsp HTTP/1.1
Accept: text/plain; text/html
Accept-Language: en-gb
Connection: Keep-Alive
Host: localhost
User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows 98)
Content-Length: 33
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate

lastName=Franks&firstName=Michael
方法—统一资源标识符(URI)—协议/版本出现在请求的第一行。
POST /examples/default.jsp HTTP/1.1
这里POST是请求方法,/examples/default.jsp是URI,而HTTP/1.1是协议/版本部分。

每个HTTP请求可以使用HTTP标准里边提到的多种方法之一。HTTP 1.1支持7种类型的请求:GET, POST,
HEAD, OPTIONS, PUT, DELETE和TRACE。GET和POST在互联网应用里边最普遍使用的。

URI完全指明了一个互联网资源。URI通常是相对服务器的根目录解释的。因此,始终一斜线/开头。统一资源定位器(URL)其实是一种URI(查看http://www.ietf.org/rfc/rfc2396.txt)来的。该协议版本代表了正在使用的HTTP协议的版本。

请求的头部包含了关于客户端环境和请求的主体内容的有用信息。例如它可能包括浏览器设置的语言,主体内容的长度等等。每个头部通过一个回车换行符(CRLF)来分隔的。
对于HTTP请求格式来说,头部和主体内容之间有一个回车换行符(CRLF)是相当重要的。CRLF告诉HTTP服务器主体内容是在什么地方开始的。在一些互联网编程书籍中,CRLF还被认为是HTTP请求的第四部分。
在前面一个HTTP请求中,主体内容只不过是下面一行:
lastName=Franks&firstName=Michael
实体内容在一个典型的HTTP请求中可以很容易的变得更长。

HTTP响应

类似于HTTP请求,一个HTTP响应也包括三个组成部分:
  • 方法—统一资源标识符(URI)—协议/版本
  • 响应的头部
  • 主体内容
下面是一个HTTP响应的例子:
HTTP/1.1 200 OK
Server: Microsoft-IIS/4.0
Date: Mon, 5 Jan 2004 13:13:33 GMT
Content-Type: text/html
Last-Modified: Mon, 5 Jan 2004 13:13:12 GMT
Content-Length: 112

<html>
<head>
<title>HTTP Response Example</title>
</head>
<body>
Welcome to Brainy Software
</body>
</html>

响应头部的第一行类似于请求头部的第一行。第一行告诉你该协议使用HTTP 1.1,请求成功(200=成功),表示一切都运行良好。
响应头部和请求头部类似,也包括很多有用的信息。响应的主体内容是响应本身的HTML内容。头部和主体内容通过CRLF分隔开来。

---------------------------------------------

我们每天打开浏览器浏览网页输入 http://g.cn 实际上我们仅仅是发送了一个请求。

请求信息:如下: 个人猜测的。 呵呵

其实可以发现 在html中 总是通过 form[表单] 发送请求,然后与服务器交互信息

------------------------------------------------------------------------------------------------------------------

  • 方法 — 统一资源标识符(URI) — 协议/版本
  • 请求的头部
  • 主体内容

    GET/ HTTP/1.1
    Accept: text/plain; text/html
    Accept-Language: en-gb
    Connection: Keep-Alive
    Host: g.cn
    User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows 98)
    Content-Length: xx
    Content-Type: application/x-www-form-urlencoded
    Accept-Encoding: gzip, deflate

    xxx

  • 分享到:
    评论

    相关推荐

      stm32+esp8266连web服务器

      stm32+esp8266连web服务器stm32+esp8266连web服务器stm32+esp8266连web服务器stm32+esp8266连web服务器stm32+esp8266连web服务器stm32+esp8266连web服务器stm32+esp8266连web服务器stm32+esp8266连web服务器stm32+...

      用java实现Web服务器

      java实现web服务器:(1) 连接:Web浏览器与Web服务器建立连接,打开一个称为socket(套接字)的虚拟文件,此文件的建立标志着连接建立成功。  (2) 请求:Web浏览器通过socket向Web服务器提交请求。HTTP的请求一般是...

      免费的绿色Web服务器,可以完全代替IIS,只有400多k,实用

      一个免费的绿色Web服务器,可以完全代替IIS,适用于任何版本的Windows系统,只有一个可执行文件。 复制aspsrv.exe到你网站的根目录(也就是IIS的主目录)下,运行aspsrv.exe,任务栏上会多出一个绿色图标。 现在...

      Python命令启动Web服务器实例详解

      Python命令启动Web服务器实例详解 利用Python自带的包可以建立简单的web服务器。在DOS里cd到准备做服务器根目录的路径下,输入命令: python -m Web服务器模块 [端口号,默认8000] 例如: python -m ...

      超微型WEB服务器免安装版

      是一款集合了2048游戏,电影搜索、成语接龙、进程守护、屏幕锁定解锁等功能的网页Web服务器,服务器文件64Kb(还包括30Kb GZIP dll)应该是最小的Web服务器,支持编写dll插件,服务器没有接口,启动后会出现托盘图标。...

      WEB服务器、应用程序服务器、HTTP服务器区别

      WEB服务器、应用程序服务器、HTTP服务器区别

      微型web服务器-单文件

      微型web服务器,就一个文件,方便搭建web服务,用于一般的web服务即可。需要的赶紧下载吧

      简单搭建WEB服务器 简单搭建WEB服务器 简单搭建WEB服务器

      简单搭建WEB服务器 简单搭建WEB服务器 简单搭建WEB服务器

      实验_Linux下的web服务器.doc

      实验_Linux下的web服务器.doc//实验_Linux下的web服务器.doc

      C++从零开始搭建一个web服务器

      Linux下基于C++的轻量级Web服务器; (1)使用 线程池 + 非阻塞socket + epoll(ET和LT均实现) + 事件处理(Reactor、Proactor) 的并发模型; (2)使用状态机解析HTTP请求报文,支持解析GET和POST请求; (3)访问...

      Web服务器性能测试研究

      第二章 Web服务器概述 5 2.1 Web服务器的基本概念 5 2.2 HTTP协议的运作方式 6 2.2.1 HTTP协义基本介绍 6 2.2.2 HTTP 协议组成 7 2.2.3 TCP 对 HTTP的影响 9 2.3 Socket通信 10 2.4 Web服务器性能测试 11 2.5 影响...

      守望WEB服务器 v3.0

      这个WEB服务器是用C语言开发的 ,其特点是界面精美,易于使用,还有信息流量统计。整个WEB服务器就是 一个EXE可执行程序,无需任何安装,不修改注册表,删除时直接删除所有相关文件就行了。程序放在任何目录均可运行...

      在Android设备上搭建Web服务器的方法

      一般而言,Android 应用在请求数据时都是以 Get 或 Post 等方式向远程服务器发起请求,那你有没有想过其实我们也可以在 Android 设备上搭建一个小型 Web 服务器,并且实现常规的下载图片、下载文件、提交表单等功能...

      易语言简易WEB服务器源码.rar

      易语言简易WEB服务器源码.rar

      c#简单web服务器开发实例

      c#简单web服务器开发实例,通过HttpListener来实现

      一个简单的web服务器编程实例

      一个简单的web服务器编程实例

      (linux下C语言实现)简易web服务器

      学习网络编程时写的一个简易的web服务器 实现了web服务器的请求处理功能。 基于linux平台。

      (牛客网C++课程)Linux 高并发Web服务器项目实战(带定时检测代码)

      (牛客网C++课程)Linux 高并发Web服务器项目实战(带定时检测代码) 技术框架: 1. 线程池 + 非阻塞 socket + epoll + 事件处理的并发模型 2. 状态机解析HTTP请求 3. 心跳机制 4. 简易日志系统 主要内容: 1. ...

      决战Nginx 技术卷:高性能Web服务器部署与运维.part3

      《决战Nginx技术卷:高性能Web服务器部署与运维(基于php、Java、ASP.NET等)》详细讲述了Nginx服务器与动态语言应用的结合,动态语言包括PHP、Python、Perl、Java、Ruby及ASP.NET架构。对于PHP部分,我们使用了...

      实战Nginx高性能Web服务器

      1、高性能Web服务器Nginx的配置与部署研究(1)Nginx简介及入门示例 内容:概述Nginx的背景知识和简单的入门实例。 2、高性能Web服务器Nginx的配置与部署研究(2)Nginx入门级配置与部署及“Hello World” 内容:...

    Global site tag (gtag.js) - Google Analytics