软件开发之http协议
1、http协议A:什献垴淄睬么是协议?协议就是甲乙双方共同遵守的办事规范在java的应用程序中就是定义了接口B:什么是http协议它是由w3c指定的B/S结籁缰汾秘构中常用的一种通信协议它的底层是TCP/IP UDPTCP/IP 可以保证传输数据的正确性 也就意味着传输效率低 (三次握手)UDP 不保证数据传输正确,但是它的传输效率高C:在常用的B/S结构中就是客户端和服务器端使用http协议进行通信客户端一般就是指的操作系统的浏览器在浏览器和服务器端的通信中从浏览器发送数据到服务器端叫做请求 (是指客户端需要从服务器端请求某个资源) 这个过程通常被叫做request从服务器端发送数据到浏览器叫做响应 (是指服务器端对客户端的请求有一个反馈) 这个过程通常被叫做responseD:请求协议请求协议的格式包括请求行 请求头 空白行 请求体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:请求的资源的uriHTTP/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-CNUser-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)Accept-Encoding: gzip, deflateHost: 127.0.0.1:8080Connection: Keep-Alive