web程序运行机制与HTTP基础

web程序运行机制与HTTP基础

web程序运行的过程

  1. 用户在客户端浏览器出入url地址,通过浏览器发出web请求
  2. 域名服务器对url地址进行解析,并和web服务器建立连接
  3. web请求数据被浏览器封装为http报文,并传送到web服务器
  4. web服务器在获取web请求后,根据请求信息,执行相关服务器代码(可能会访问后台服务器,数据库服务器),并将执行结构以html页面的方式返回给客户端
  5. 客户端将html页面代码在浏览器结解释执行

HTTP

http是一种无状态的网络协议,默认端口为80.无状态是指每一次连接完成后,服务器无法识别上次进行连接的是哪个客户端的哪个程序.http协议传递的报文包括请求报文和响应报文
报文的格式有三部分组成:进行描述的起始行、包含属性的首部块、可选的额包含数据的主体

  • http请求报文

    http请求报文的格式如下:
    HTTP方法 请求的url HTTP版本
    若干请求首部
    空行
    请求体

  • 一个典型的HTTP请求

    1
    2
    3
    GET /index.jsp?param=void HTTP/1.1  
    Host:www.baidu.com
    Accept:text/*
  • http常用请求方法

方法 功能
GET 返回指定文档的内容
POST 利用附带的数据执行指定的文档
PUT 利用附带的数据替换指定的文档
DELETE 删除指定的文档
HEAD 返回指定文档的头信息

HTTP中最常用的是GET和POST方法
GET方法将参数形成字符串。然后附加在url后传输,参数串作为url的一部分出现在http请求的第一行,其中参数字符串以“?”开头参数以“key=value”的键值对的方式显示,每个键值对之间以“&”字符连接
POST方法先将url直接发出,消息头中不在含有参数,参数形成的字符串将被放在http消息体中发送。若发送html表单数据或者处于安全的考虑,应该使用这种方式

  • http响应报文

http响应报文的格式如下:
http版本 状态码 状态描述
若干响应首部
空行
响应体

  • 一个典型的http响应

    1
    2
    3
    4
    5
    HTTP/1.1 200 ok
    Content-type:text/plain
    Content-length:777
    ...
    <html>...
  • http协议响应状态码

状态码范围 出错分类
100-101 信息提示
200-206 成功
300-305 重定向
400-415 客户端错误
500-505 服务端错误
  • HTTP协议报文首部
    HTTP协议常用的首部分为通用首部、请求首部、响应首部、实体首部。Host和Accept是请求首部,Connection是通用首部,Content-type和Content-Length是实体首部(请求体和响应体统称实体)。以下是常见的首部:
name 类型 用途
Data 通用 提供创建报文的日期和时间标志
Pragma 通用 随报文传送指示的一种方式,可用于缓存
Referer 请求 指示发出当前请求的url
User-Agent 请求 表示发出请求的程序,通常是浏览器的信息
If-Modified-Since 请求 指示服务器,若文档在某时间之后未修改,则不用响应
Authorization 请求 为服务器提供对客户端身份做验证的数据
Cookie 请求 cookie数据
Age 响应 响应的持续时间
Set-Cookie 响应 设置cookie
WWW-Authenticate 响应 服务端对客户端的质询数据
Location 实体 向客户端指出重定向数据
Expirse 实体 表示实体不再有效,需要源端重新发送
Last-Modified 实体 表示实体最后一次修改时间