Web Server(网页服务器)
一个 Web Server 就是一个服务器软件(程序),或者是运行这个服务器软件的硬件(计算机)。其主要功能是通过 HTTP 协议与客户端(通常是浏览器(Browser))进行通信,来接收、存储,处理来自客户端的 HTTP 请求,并对其请求做出 HTTP 响应,返回给客户端其请求的内容(文件、网页)或返回一个error信息。
通常用户使用 Web 浏览器与相应服务器进行通信。在浏览器中键入“域名”或“IP地址:端口号”,浏览器则先将你的域名解析成相应的 IP 地址或者直接根据你的 IP 地址向对应的 Web 服务器发送一个 HTTP 请求。
这一过程首先要通过 TCP 协议的三次握手建立与目标 Web 服务器的连接,然后 HTTP 协议生成针对 Web 服务器的 HTTP 请求报文,通过 TCP、IP等协议发送到目标 Web 服务器上。
HTTP协议(应用层的协议)
超文本传输协议(Hypertext Transfer Protocol, HTTP)是一个简单的 请求-响应 协议,是基于 TCP/IP协议之上的应用层协议。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以 ASCII 形式给出,而消息内容则具有一个类似 MIME 的格式。HTTP 是万维网的数据通信的基础。
HTTP 是一个客户端终端和服务器端请求和应答的标准(TCP)。通过使用网页浏览器、网络爬虫或者其它的工具,客户端发起一个 HTTP 请求到服务器上指定端口(默认端口为80).我们称这个客户端为用户代理程序(user agent)。应答的服务器上存储着一些资源,比如 HTML 文件和图像,我们称这个应答服务器为源服务器(origin server)。在用户代理和源服务器中间可能存在多个“中间层”,比如代理服务器、网关或者隧道。
HTTP 假定其下层协议提供可靠的传输,因此任何能够提供这种保证的协议都可以被其使用,因此在 TCP/IP 协议族中使用 TCP 作为其传输层。
HTTP请求方法
HTTP/1.1 协议中共定义了8种方法(也叫“动作”)来以不同方式操作指定的资源,以下只介绍GET/POST:
1.GET:向指定的资源发出“显示”请求,使用GET方法应该只用在读取数据,而不应当被用于可能会产生副作用的操作中,例如在 Web Application 中,其中一个原因是 GET 可能会被网络蜘蛛等随意访问。
2.POST:向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件)。数据被包含在请求报文中,这个请求可能会创建新的资源或者修改现有资源,或两者兼有。
GET和POST的区别:
POST 是被设计用来向上放东西的,而 GET 是被设计用来从服务器取东西的,GET 也能够向服务器传送较少的数据,而 GET 之所以也能传送数据,只是被用来设计告诉服务器,你到底需要什么样的数据。POST 参数放在 HTTP 请求体,而 GET 参数放在 HTTP 请求头。