一、为什么要学习http协议
绝大多数的web应用都是构建在http协议之上的,理解和掌握http将有助于我们更好的学习servlet和jsp以及其他一些web技术;
二、什么是Http
1、Http(Hypertext Taansfer Protocol)超文本传输协议,从1990年在www上广泛应用,是现今在www上应用最多的协议;
2、应用层协议,浏览网页时浏览器和服务器之间就会通过Http在Internet上进行数据的发送和就收
3、HTTP是一个基于请求/响应模式的、无状态的协议(request/response based ,stateless protocol)无状态是指协议对于事务处理没有记忆能力,缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大另一方面,在服务器不需要先前信息时它的应答就较快;
HTTP1.0及以下版本是不持续连接:浏览器的每次请求都需要与服务器进行TCP连接,服务器响应后断开连接
HTTP1.1 持续连接(persistent connections)机制是HTTP1.1建立连接的缺省行为
4、HTTP URL
http://host[:port][abs_path]
http表示要通过HTTP协议来定位网络资源;
Host表示合法的Internet主机域名或IP地址
Port 用于指定一个端口号,拥有被请求资源的服务器主机监听该端口的TCP连接,如果port是空的使用缺省端口 80;
abs_path 指定请求资源的URI(Uniform Resour Identifier)如果URL中没有给出abs_path,那么当他作为请求URI 时必须以“/”的形式给出——通常这个工作浏览器就帮我们完成了
URI纯粹是个符号结构,用于指定构成web资源的字符串的各个不同的部分
URL是一种特殊类型的URI它包含了用于定位某个资源的足够信息
三、浏览器与服务器连接的一般过程
ServerSocket ss= new ServerSocket(80);
ss.accept();
www.sohu.com+80(浏览器自动加的)->DNS(Domain Name Service)->221.179.180.20:80
Sokect s =new Socket(221.179.180.20:80)