HTTP 基础

本文最后更新于:2024年6月29日 晚上

HTTP 基础

  • Web的运行是基于HTTP协议(HyperText Transfer Protocol,超文本传输协议)的,HTTP协议规定了浏览器如何向Web服务器请求文件,以及服务器如何根据请求返回文件,为了理解本章中将阐述的各种技术,你需要对HTTP有一个基本的了解,想更多了解HTTP,请查看Clinton Wong所著的HTTP Procket Reference(由O’Reilly公司出版)
  • 当一个Web浏览器请求一个Web页面中,它会发送一个HTTP请求消息给Web服务器,这个请求信息总是包含某些头部信息(header information),有时也会有消息主体(body),Web服务器将返回一个回应消息作为响应,回应消息也包含头部信息和消息主体,HTTP请求的第一行通常是这样的:
1
GET /index.html HTTP/1.1
  • 这一行指定了一个称为方法(method)的HTTP命令,其后指明了文档的地址和正使用的HTTP协议版本,这个例子中,请求是用GET方法,并采用HTTP1.1协议来请求名称为index.html的服务器端文档,在第一行之后,请求还可能包含一些可选的头部信息,给服务器附加的数据,例如:
1
2
User-Agent : Mozilla/5.0 (Windows 2000; U) Opera 6.0 (3n)
Accept : image/gif, image/jpeg, text/*, */*
  • User-Agent头提供Web浏览器相关的信息,而Accept头指定了浏览器接受的MIME类型,在所有头部信息之后,请求会包含一个空白的行,说明头部信息已经结束,请求也可以包含附加的数据,如果采用了相对应的方法,(例如,用POST方法,我们将很快会讨论到),如果请求不包含任何数据,它就会以一行空白行结束。
  • Web服务器接收请求后,处理并返回一个响应,HTTP响应的第一行看起来是这样的:
1
HTTP/1.1 200 OK
  • 这一行指定了协议的版本,状态码,和状态码的描述,本例中状态码为"200",说明请求成功(因此状态码的描述是"OK"),在状态行之后,响应消息包含了一些头部信息,用于向客户端浏览器提供附加信息,例如:
1
2
3
4
Date: Sat, 22 Jan 2006 20:25:12 GMT
Server: Apache 1.3.33 (Unix) mod_perl/1.26 PHP/5.0.4
Content-Type: text/html
Context-Length: 141
  • Server这一行提供了Web服务器软件的相应信息;Context–Type指定响应中数据的MIME类型,在这些头部信息之后是一个空白行,如果请求成功,空行之后就是所请求的数据。
  • 最常用的两种HTTP方法是GET和POST,GET方法用于从服务器中获得文档,图像或数据库检索结果的信息,POST则用于向服务器发送信息,例如:信用卡的号码或其他信息要提交到服务器并存储到服务器上的数据库中,当用户在浏览器的地址栏中键入一个URL并访问或者单击网页上的一个链接时,浏览器都使用GET方法,而用户提交一个表单时,既可以使用POST方法,也可以使用GET方法,具体使用哪种方法有form标签的methood属性确定,我们将在"表单处理"这一节中详细讨论GET和POST方法。

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!