HTTP基础

HTTP简介

HTTP 是一个客户端终端和服务器端请求和应答的标准。通过使用网页浏览器、网络爬虫或者其它的工具,客户端发起一个 HTTP 请求到服务器上指定端口(默认端口为80)。我们称这个客户端为用户代理程序(user agent)。应答的服务器上存储着一些资源,比如 HTML 文件和图像。我们称这个应答服务器为源服务器(origin server)。在用户代理和源服务器中间可能存在多个“中间层”,比如代理服务器、网关或者隧道(tunnel)。
尽管 TCP/IP 协议是互联网上最流行的应用,HTTP 协议中,并没有规定必须使用它或它支持的层。事实上,HTTP 可以在任何互联网协议上,或其他网络上实现。HTTP 假定其下层协议提供可靠的传输。因此,任何能够提供这种保证的协议都可以被其使用。因此也就是其在 TCP/IP 协议族使用 TCP 作为其传输层。

HTTP工作原理

HTTP 协议工作于客户端-服务端架构上。浏览器作为 HTTP 客户端,通过 URL 向 HTTP 服务端即 WEB 服务器发送所有请求。Web 服务器根据接收到的请求后,向客户端发送响应信息。

HTTP消息头

HTTP 消息头是指,在超文本传输协议( Hypertext Transfer Protocol ,HTTP)的请求和响应消息中,协议头部分的那些组件。HTTP 消息头用来准确描述正在获取的资源、服务器或者客户端的行为,定义了 HTTP 事务中的具体操作参数。
HTTP头部消息由众多的消息头组成,每个消息头由一个消息名、冒号和消息值三部分组成。消息值是无关大小写的,消息值前可添加任何数量的空格符,消息头可以被扩展为多行,在每行开始处,使用至少一个空格或制表符。

常见的消息头信息如下:

  • Accept 可接受的响应内容类型(Content-Types)。示例:Accept: text/plain 状态固定;
  • Accept-Charset 可接受的字符集。示例:Accept-Charset: utf-8 状态固定;
  • Accept-Encoding 可接受的响应内容的编码方式。示例:Accept-Encoding: gzip, deflate 状态固定;
  • Accept-Language 可接受的响应内容语言列表。示例:Accept-Language: en-US 状态固定;
  • Cookie 由之前服务器通过 Set-Cookie 设置的一个 HTTP 协议 Cookie 示例:Cookie: $Version=1; Skin=new; 状态固定;
  • Content-Type 请求体的 MIME 类型 (用于 POST 和 PUT 请求)。示例:Content-Type: application/x-www-form-urlencoded 状态固定。
  • Host 用于指定请求资源的Intenet主机号和端口号,必须表示请求URL的原始服务器或网关的位置。
  • User-Agent 里面包含发出请求的用户信息,其中有使用的浏览器型号、版本和操作系统的信息。这个消息头经常用来作为反爬虫的措施。

HTTP请求方式

  • GET 请求指定的页面信息,并返回实体主体;
  • HEAD 类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头;
  • POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和已有资源的修改;
  • PUT 从客户端向服务器传送的数据取代指定的文档的内容;
  • DELETE 请求服务器删除指定的页面;
    CONNECT HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器;
  • OPTIONS 允许客户端查看服务器的性能;
  • TRACE 回显服务器收到的请求,主要用于测试或诊断;
  • PATCH 是对 PUT 方法的补充,用来对已知资源进行局部更新 。

HTTP状态码

常见的 HTTP 状态码如下所示:

  • 200 - 请求成功,浏览器会把响应回来的信息显示在浏览器端;
  • 301 - 资源(网页等)被永久转移到其它 URL;
  • 404 - 请求的资源(网页等)不存在;
  • 500 - 内部服务器错误。

Cookie
网站为了辨别用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)。

Session
Session 称为“会话控制”。Session 对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话。Session 对象最常见的一个用法就是存储用户的首选项。

上一篇:JavaWeb


下一篇:selenium实战:操作3种提示框