您的位置首页百科问答

软件开发之http协议

软件开发之http协议

的有关信息介绍如下:

软件开发之http协议

http协议是由w3c指定的B/S结构中常用的一种通信协议,它的底层是TCP/IP UDP

http协议

A:什么是协议?

协议就是甲乙双方共同遵守的办事规范

在java的应用程序中就是定义了接口

B:什么是http协议

它是由w3c指定的B/S结构中常用的一种通信协议

它的底层是TCP/IP UDP

TCP/IP 可以保证传输数据的正确性 也就意味着传输效率低 (三次握手)

UDP 不保证数据传输正确,但是它的传输效率高

C:在常用的B/S结构中

就是客户端和服务器端使用http协议进行通信

客户端一般就是指的操作系统的浏览器

在浏览器和服务器端的通信中

从浏览器发送数据到服务器端叫做请求 (是指客户端需要从服务器端请求某个资源) 这个过程通常被叫做request

从服务器端发送数据到浏览器叫做响应 (是指服务器端对客户端的请求有一个反馈) 这个过程通常被叫做response

D:请求协议

请求协议的格式

包括请求行 请求头 空白行 请求体

GET /pro-servlet-08/HelloServlet HTTP/1.1 请求行

Accept: text/html, application/xhtml+xml, */* 请求头

Referer: http://127.0.0.1:8080/pro-servlet-09/ 请求头

Accept-Language: zh-CN 请求头

User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) 请求头

Accept-Encoding: gzip, deflate 请求头

Host: 127.0.0.1:8080 请求头

Connection: Keep-Alive 请求头

空行

请求体

请求行

包括三部分

GET /pro-servlet-08/HelloServlet HTTP/1.1

GET:说明这次请求是使用get方式给服务器端发送的请求

/pro-servlet-08/HelloServlet:请求的资源的uri

HTTP/1.1 :http协议的版本

请求头

可以有多个 每一个就是一个名值对

Host: 127.0.0.1:8080 它的key就是host 值就是127.0.0.1:8080

空白行: 隔开请求头和请求体

请求体:只有使用post方式给服务器端发送数据 才会有请求体

get方式发送数据没有请求体

使用get方式请求服务器端资源时同时要发送数据

eg:

/pro-servlet-08/HelloServlet?name=aaa&age=21

以上的请求uri的含义是在请求服务器端资源/pro-servlet-08/HelloServlet的同时

给服务器端发送两个参数 一个名称是name,值是aaa 另一个名称是age,值是21

请求协议

GET /pro-servlet-09/HelloServlet?name=aaa&age=21 HTTP/1.1

以上的请求行说明了使用get方式给服务器端发送参数是直接在请求行的uri的?后添加发送参数

使用get方式发送会造成浏览器的地址栏发生变化

Accept: text/html, application/xhtml+xml, */*

Referer: http://127.0.0.1:8080/pro-servlet-09/

Accept-Language: zh-CN

User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)

Accept-Encoding: gzip, deflate

Host: 127.0.0.1:8080

Connection: Keep-Alive