软件开发之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