万维网WWW

  1、统一资源定位符URL

  统一资源定位符URL是用来表示从互联网上得到的资源位置和访问这些资源的方法。

  URL的一般格式由以下四个部分组成:

              <协议>://<主机>:<端口>/<路径>

  协议:在万维网最常用的协议主要由两个:http(超文本传输协议)、ftp(文件传输协议)

  主机:是指主机的域名

  端口:协议端口

  路径:要访问的文件的路径

  2、使用HTTP的URL

  这在我们的日常生活中非常常见,HTTP的URL一般协议:

                http://<主机>:<端口>/<路径>

  主机:是指主机的域名

  端口:HTTP协议的端口默认是80

  路径:要访问的文件的路径

  URL的协议和主机部分不区分大小写,但是路径是区分大小写的。

  3、HTTP:

  HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。

  以下是 HTTP 请求/响应的步骤:

  1)客户端连接到Web服务器

  一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。

  2)发送HTTP请求

  通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据4部分组成。

  3)服务器接受请求并返回HTTP响应

  Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。一个响应由状态行、响应头部、空行和响应数据4部分组成。

  4)释放连接TCP连接

  若connection 模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;若connection 模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求;

  4、HTTP报文结构

  客户端发送一个HTTP请求到服务器的请求消息包括以下格式:

  请求行(request line)、请求头部(header)、空行和请求数据四个部分组成。

  请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本。

      第一部分:请求行,用来说明请求类型,要访问的资源以及所使用的HTTP版本.

  请求方法命令:

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

  第二部分:请求头部,紧接着请求行(即第一行)之后的部分,用来说明服务器要使用的附加信息

  从第二行起为请求头部,HOST将指出请求的目的地.User-Agent,服务器端和客户端脚本都能访问它,它是浏览器类型检测逻辑的重要基础.该信息由你的浏览器来定义,并且在每个请求中自动发送等等

  第三部分:空行,请求头部后面的空行是必须的

  即使第四部分的请求数据为空,也必须有空行。

  第四部分:请求数据也叫主体,可以添加任意的其他数据。

  2)响应报文

  HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。

  第一部分:状态行,由HTTP协议版本号, 状态码, 状态消息 三部分组成。

  第一行为状态行,(HTTP/1.1)表明HTTP版本为1.1版本,状态码为200,状态消息为(ok)

  第二部分:消息报头,用来说明客户端要使用的一些附加信息

  第二行和第三行为消息报头,
  Date:生成响应的日期和时间;Content-Type:指定了MIME类型的HTML(text/html),编码类型是UTF-8

  第三部分:空行,消息报头后面的空行是必须的

   第四部分:响应正文,服务器返回给客户端的文本信息。

  空行后面的html部分为响应正文。

  HTTP之状态码

  状态代码有三位数字组成,第一个数字定义了响应的类别,共分五种类别:

  1xx:指示信息--表示请求已接收,继续处理

  2xx:成功--表示请求已被成功接收、理解、接受

  3xx:重定向--要完成请求必须进行更进一步的操作

  4xx:客户端错误--请求有语法错误或请求无法实现

  5xx:服务器端错误--服务器未能实现合法的请求

  常见状态码:

  200 OK                        //客户端请求成功
  400 Bad Request               //客户端请求有语法错误,不能被服务器所理解
  401 Unauthorized              //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用 
  403 Forbidden                 //服务器收到请求,但是拒绝提供服务
  404 Not Found                 //请求资源不存在,eg:输入了错误的URL
  500 Internal Server Error     //服务器发生不可预期的错误
  503 Server Unavailable        //服务器当前不能处理客户端的请求,一段时间后可能恢复正常


原文地址:https://www.cnblogs.com/PIRATE-JFZHOU/p/7995400.html