HTTP协议详解(一)——初识HTTP及请求

何为HTTP(超文本传输协议)?

协议,即约定俗成的规范。HTTP则是浏览器与服务器之间交流的一种规范。HTTP基于TCP/IP协议,属于应用层的协议。

 

为什么Web应用不使用TCP或者UDP协议呢?

TCP基于连接和三次握手,像C/S架构的网站,最多上千个Client同时连接,而B/S架构的网站,十万人同时在线是很平常的,如果十万个客户端同时与服务器保持连接,服务器会承载不了。UDP则是一种不可靠且不安全的协议,无法满足Web应用的要求。

于是衍生出HTTP协议。HTTP请求结束后,服务器立即关闭连接,释放资源。

 

HTTP工作流程及原理

1.由客户端向服务器发起一个HTTP请求,请求建立一个到服务器指定端口(默认80)的TCP连接。

2.服务器在指定端口(默认80)接收到客户端发来的HTTP请求。

3.服务器向客户端发回一个状态行(比如"HTTP/1.1 200 OK"),和响应的消息。

4.客户端接收到服务器返回的信息,并把内容显示在屏幕上,然后与服务器断开连接。

 

HTTP请求详解

一个HTTP请求代表客户端(浏览器)向服务端发送数据的过程。一个完整的HTTP请求内容分为三个部分:请求行、请求头、请求正文。

1.请求行:

格式 - “请求方法 URI HTTP协议版本号”

例如 - GET /helloworld/user.html HTTP/1.1

2.请求头:

内容 - 包含客户端请求的服务器主机名,以及客户端的环境信息等。

部分头属性解释 -

Accept:用于告诉服务器,客户端支持的数据类型  (例如:Accept:text/html,image/*)
Accept-Charset:用于告诉服务器,客户端采用的编码格式
Accept-Encoding:用于告诉服务器,客户端支持的数据压缩格式
Accept-Language:客户端语言环境
Host:客户端通过这个服务器,想访问的主机名
If-Modified-Since:客户端通过这个头告诉服务器,资源的缓存时间
Referer:客户端通过这个头告诉服务器,它(客户端)是从哪个资源来访问服务器的(防盗链)
User-Agent:客户端通过这个头告诉服务器,客户机的软件环境(操作系统,浏览器版本等)
Cookie:客户端通过这个头,将Cookie信息带给服务器
Connection:告诉服务器,请求完成后,是否保持连接
Date:告诉服务器,当前请求的时间

3.请求体

即实体内容,是指浏览器端通过http协议发送给服务器的实体数据。例如:name=dylan&id=110
(GET请求时,通过url传给服务器的值。POST请求时,通过表单发送给服务器的值)

 

posted on 2019-10-29 15:54  魔王大人的大人  阅读(233)  评论(0编辑  收藏  举报

导航