自学网络编程第一天- HTTP基础:基础原理、Request请求、Response应答
基础原理
我们通过浏览器浏览一个网站,其具体的流程是这样的:
- 浏览器向 URL 发送 HTTP 请求
- 服务器接收到请求,查看请求内容
- 根据请求内容准备数据
- 将数据以 HTTP 应答形式发回
- 浏览器收到应答,分析应答内容
- 根据应答内容渲染并呈现页面
- 用户进行操作
- 浏览器判断用户的操作,是发送给页面脚本处理还是发送回服务器处理
大致流程是这样的,但是具体上还有许多需要处理的细节,比如说URL的域名解析、HTTP的三次握手等。基于 HTTP 的网络编程大概的流程也是这样,所以 HTTP 请求和 应答是十分重要的部分。
Request 请求
request 请求是 HTTP 协议对服务端发送的一种特殊报文形式
请求格式
请求信息由3部分构成:
- 请求行:请求方法 URL 协议/版本
- 请求头:请求报文头部(Request Header)信息,放置一些给服务器使用的附加信息
- 请求体:请求正文
GET /sample.Jsp HTTP/1.1
Accept:image/gif.image/jpeg,*/*
Accept-Language:zh-cn
Connection:Keep-Alive
Host:localhost
User-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0)
Accept-Encoding:gzip,deflate
username=xxxxxx&password=xxxxxx
上方这个例子分为三部分,分别对应了 HTTP 请求信息的3部分构成。请求行,位置为第一行;请求头信息,位置为第二行到空行上方;请求体,位置为空行之下的所有。
注意:请求行中的请求方法、url、协议/版本需空格相隔。请求头每行为一条信息,使用键值对格式。
请求方式
HTTP 请求方式,HTTP1.0 定义了三种: GET, POST, HEAD;HTTP1.1 新增了六种:OPTIONS, PUT, PATCH, DELETE, TRACE, CONNECT
方法 | 描述 |
---|---|
GET | 请求指定的页面信息,并返回实体主体 |