一、HTTP概述

  • 超文本传输协议(Hyper Text Transfer Protocol)
  • 用于从万维网服务器传输超文本到本地浏览器的传输协议
  • HTTP协议是基于TCP的应用层协议,它不关心数据传输的细节,主要是用来<font color="red">规定客户端和服务器的数据传输格式</font>,最初是用来向客户端传输HTML页面的内容。默认端口是80。
  • http是基于请求与响应模式的、无状态的、应用层的协议。

二、HTTP请求报文

2.1 请求报文概述(Request)

  • HTTP请求报文主要由四部分组成

    • 请求行:
    • 请求头:附加的信息,需要服务器知道的一些信息
    • 空一行
    • 请求体get请求方式没有请求体,post请求体中存放需要提交的数据)

img

2.2 请求行

2.2.1 请求方法(Request Method)

请求方法描述
GET请求资源
POST提交资源
Head获取响应头
PUT替换资源
DELETE删除资源
OPTIONS允许客户端查看服务器的性能
TRACE回显服务器收到的请求,用于测试或诊断
CONNECTHTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器

2.2.2 URL

  • 统一资源定位符:Uniform Resource Locator

    • 用于描述网上的资源
  • 格式:schema://hosr[:port]/path/.../[?query-string]

    • schema:协议,如http,https,ftp
    • host:域名或者ip地址
    • port:端口
    • path:资源路径
    • query-string:发送的参数

2.3 请求头(Request Header)

请求头描述
Host主机ip地址或域名
User-Agent客户端相关信息,如操作系统、浏览器等信息
Accept指定客户端接收信息类型,如image/jpg,text/html,application/json
Accept-Charset客户端接收的字符集,如gb2312,iso-8859-1
Accept-Encoding可接受的内容编码,如gzip
Accept-Language接收的语言,如Accept-Language:zh-cn
Authorization客户端提供给服务端,进行权限认证的信息
Cookie携带的cookie信息
Referer当前文档的URL,即从哪个链接过来的
Content-Type请求体内容类型,如Content-Type:application/json
Content-Length数据长度
Cache-Control缓存机制,如Cache-Control:no-cache
Pragma放置页面被缓存,和Cache-Control:no-cache作用一样

三、HTTP响应报文

3.1 响应报文概述(Response)

  • HTTP响应报文主要有四部分组成

    • 响应行(状态行)
    • 响应头
    • 空行
    • 响应体(正文)

img

3.2 状态码(Status Code)

  • 状态码用以表示网页服务器HTTP响应状态的3位数字代码
状态码描述
1xx提示信息,请求被成功接收(中间状态,一般观察不到)
2xx成功,请求被成功处理(200 ok)
3xx重定向相关(304 缓存)
4xx客户端错误(404 资源路径有误)
5xx服务器端错误(500 程序有错)

3.3 响应头(Response Header)

响应头描述
ServerHTTP服务器的软件信息
Date响应报文的时间
Expires指定缓存过期时间
Set-Cookie设置cookie
Last-Modified资源最后修改时间
Content-Type响应的类型和字符集,如ContentType:text/html;Charset=utf-8
Content-Length内容长度
Connection如Keep-Alive,表示保持tcp连接不关闭,不会永久保持连接,服务器可设置
Location指明重定向的位置,新的url地址,如304情况
Last modification:December 6th, 2019 at 04:52 pm